c#对象集合去重_C#和JavaScript中数组去重总结

本文探讨了在C#和JavaScript中进行数据去重的不同方法,包括使用`Union`、`Concat`、`Distinct`以及手动遍历去重。C#中,`HashSet`的`Add`方法在遇到重复时会忽略,而`Hashtable`和`Dictionary`会抛出异常。在JavaScript中,可以利用`Distinct`方法快速去重。文章还展示了具体的代码示例和运行结果。
摘要由CSDN通过智能技术生成

去重在我们的开发过程中经常遇到,避免重复元素的添加,我们需要对获取到的集合(包括List、Array等)做相关的过滤操作。确保对象

一.前言

去重在我们的开发过程中经常遇到,避免重复元素的添加,我们需要对获取到的集合(包括List、Array等)做相关的过滤操作。确保对象的唯一性,从而达到保证数据不冗余重复。由于自己是做.net方面的开发,所以就拿C#语言中常用的去重方式来学习。如果有其他更好的方式,希望各位大牛指出来,自己也学习学习,在此十分感谢!

二.C#一般性去重

static void Main(string[] args)

{

//1.集合的定义

List listArr = new List { 1, 2, 3, 5, 8, 10 };

List listArrCompare = new List { 2, 3, 4, 8, };

var num1 = "";

var num2 = "";

var num3 = "";

//2.集合的操作

listArr.AddRange(listArrCompare);  //将listArr和listArrCompare合并

List resultList = listArr.Union(listArrCompare).ToList();          //剔除重复项

List ResultSameList = listArr.Concat(listArrCompare).ToList();        //保留重复项

foreach (var item1 in listArr)

{

num1 = num1 + "," + item1.ToString();

}

foreach (var item2 in resultList)

{

num2 = num2 + "," + item2.ToString();

}

foreach (var item3 in ResultSameList)

{

num3 = num3 + "," + item3.ToString();

}

Console.WriteLine(num1);

Console.WriteLine(num2);

Console.WriteLine(num3);

Console.ReadKey();

}

结果:

539d948dbaf1f42739d6625a91d5ca39.png

c#中还有很多去重的方案,在这里说到了最基础的,对于Dictionary、HashTable、HashSet等都可以利用到去重的方法。

HashSet的Add方法返回bool值,在添加数据时,如果发现集合中已经存在,则忽略这次操作,并返回false值。

而Hashtable和Dictionary碰到重复添加的情况会直接抛出错误。

三.c#采用for循环遍历对比去重

//一个集合内部的集合去重,采用循环比较

var temp = "";

List lstall = new List { 1, 2, 3, 4, 5, 5, 8, 8, 10 };

for (int i = 0; i < lstall.Count - 1; i++)

{

for (int j = lstall.Count - 1; j > i; j--)

{

if (lstall[i] == lstall[j])

{

lstall.RemoveAt(j);

}

}

}

foreach (var item in lstall)

{

temp += item.ToString() + ",";

}

Console.WriteLine(temp);

Console.ReadKey();

结果:

a798f747ca684c57a5076675735c4178.png

四.Distinct去重

//利用distinct去重

List strSameList = new List();

strSameList.Add("武汉");

strSameList.Add("武汉");

strSameList.Add("上海");

strSameList.Add("上海");

strSameList.Add("南京");

strSameList.Add("南京");

strSameList.Add("帝都");

strSameList.Add("石家庄");

String myList = String.Empty;

IEnumerable distinctList = strSameList.Distinct();

foreach (String str in distinctList)

{

myList += str + " ,";

}

Console.WriteLine(myList);

Console.ReadKey();

结果:

603d09b8cdf67c85be85a8bd81934123.png

五.Javascript中去重

Javascript中我们经常遇到数组去重的情况,那我们一般采取什么样的方式了?

通过学习以及网上一些资料,自己将一些方法总结如下:

5.1第一种方法:

通过定义Array对象原型的方法,那么数组都可以调用该方法对本身重复的元素Drop。

因Array原型上的方法对于不同的Array对象时共享的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值