C# 两个List泛型用 Linq去重复数据 或者 得到重复数据
2015-01-22 16:10
253 查看
1, 两个List泛型用Linq去重复数据
Code:
控制台运行结果
图1
图1 为什么会出现这个情况,什么都没有输出。下面修改下程序,请看2
2,先看 Code:
再看结果:
图2
看下加粗线 的代码 和图2结果,想必你看出所以然了。
把 A数组 当做 A区间 B数组 当做 B区间, B区间的 范围大于 A区间 ,把A、B两区间的 公共部分除掉,不同部分找出来。
1 结果 没有数据输出,原因就在此。
3,在 A数组 在 加个 mac地址 这时候 A、B两区间范围一样大
code:
再看结果:
图3
图3和图2的结果一样,不重复的数据 应该是 E00401501B652562,E00401501B652569这两个mac地址才正确。
这时候代码怎么调整呢?看 4
4,Code
结果
5,找重复数据 把linq不等于号去掉就行了。
结果
mac地址 62和69没有输出。
Code:
List<string> lstA = new List<string> { "E00401501B652563", "E00401501B652564", "E00401501B652565", "E00401501B652566", "E00401501B652567", "E00401501B652568" }; List<string> lstB = new List<string> { "E00401501B652563", "E00401501B652564", "E00401501B652565", "E00401501B652566", "E00401501B652567", "E00401501B652568", "E00401501B652569" }; List<string> newList = lstA.FindAll(x => !lstB.Contains(x)); foreach (var item in newList) { Console.WriteLine(item); } Console.ReadKey();
控制台运行结果
图1
图1 为什么会出现这个情况,什么都没有输出。下面修改下程序,请看2
2,先看 Code:
List<string> lstA = new List<string> { "E00401501B652563", "E00401501B652564", "E00401501B652565", "E00401501B652566", "E00401501B652567", "E00401501B652568" }; List<string> lstB = new List<string> { "E00401501B652563", "E00401501B652564", "E00401501B652565", "E00401501B652566", "E00401501B652567", "E00401501B652568", "E00401501B652569" }; List<string> newList = lstB.FindAll(x => !lstA.Contains(x)); foreach (var item in newList) { Console.WriteLine(item); } Console.ReadKey();
再看结果:
图2
看下加粗线 的代码 和图2结果,想必你看出所以然了。
把 A数组 当做 A区间 B数组 当做 B区间, B区间的 范围大于 A区间 ,把A、B两区间的 公共部分除掉,不同部分找出来。
1 结果 没有数据输出,原因就在此。
3,在 A数组 在 加个 mac地址 这时候 A、B两区间范围一样大
code:
List<string> lstA = new List<string> { "E00401501B652562", "E00401501B652563", "E00401501B652564", "E00401501B652565", "E00401501B652566", "E00401501B652567", "E00401501B652568" }; List<string> lstB = new List<string> { "E00401501B652563", "E00401501B652564", "E00401501B652565", "E00401501B652566", "E00401501B652567", "E00401501B652568", "E00401501B652569" }; List<string> newList = lstB.FindAll(x => !lstA.Contains(x)); foreach (var item in newList) { Console.WriteLine(item); } Console.ReadKey();
再看结果:
图3
图3和图2的结果一样,不重复的数据 应该是 E00401501B652562,E00401501B652569这两个mac地址才正确。
这时候代码怎么调整呢?看 4
4,Code
List<string> lstA = new List<string> { "E00401501B652563", "E00401501B652562", "E00401501B652564", "E00401501B652565", "E00401501B652566", "E00401501B652567", "E00401501B652568" }; List<string> lstB = new List<string> { "E00401501B652563", "E00401501B652564", "E00401501B652565", "E00401501B652566", "E00401501B652567", "E00401501B652568", "E00401501B652569" }; List<string> listAll = new List<string>(); List<string> listResult = new List<string>(); var listUnionAll = lstA.Union(lstB).OrderBy(t => t);//排序合并数据 foreach (var item in listUnionAll) { listAll.Add(item); } List<string> newList = listAll.FindAll(x => !lstA.Contains(x));//去重复,组合新的List集合 List<string> newList2 = listAll.FindAll(x => !lstB.Contains(x)); var Unionlist = newList.Union(newList2).OrderBy(t => t);//排序合并数据 foreach (var item in Unionlist) { Console.WriteLine(item); } Console.ReadKey();
结果
5,找重复数据 把linq不等于号去掉就行了。
List<string> lstA = new List<string> { "E00401501B652562", "E00401501B652563", "E00401501B652564", "E00401501B652565", "E00401501B652566", "E00401501B652567", "E00401501B652568" }; List<string> lstB = new List<string> { "E00401501B652563", "E00401501B652564", "E00401501B652565", "E00401501B652566", "E00401501B652567", "E00401501B652568", "E00401501B652569" }; List<string> newList = lstB.FindAll(x => lstA.Contains(x)); foreach (var item in newList) { Console.WriteLine(item); } Console.ReadKey();
结果
mac地址 62和69没有输出。
相关文章推荐
- Linq实现DaTaTable或者List里面数据值不重复
- Linq实现DaTaTable或者List里面数据值不重复
- sql查询一张表中两个字段重复的数据并得到其主键
- C# 使用LINQ、泛型、Index函数优化switch(或者多条if)语句
- 两个list取出重复数据
- c# 获取List中重复的数据
- 比对两个字段同时相等时判定为重复,移除list重复数据,excel导入与数据库比对
- 将从数据库中得到的数据,导出到excel表中(得到的数据使用的List泛型)
- C# - 使用 List<> 泛型给GridView控件数据
- 对比两个list<object> 得到相同数据 差异数据
- 两个list集合得到linq外连接的效果
- 两个List集合去掉重复数据
- C#去掉list集合中的重复数据
- js之list解决jsp或者html一组数据的重复问题
- 根据两个或者更多字段清除重复数据
- C# 使用LINQ、泛型、Index函数优化switch(或者多条if)语句
- C# 用Linq实现DataTable实现重复数据过滤
- List或者arraylist去掉重复数据(对象也可以)
- 【C#】访问泛型中的List列表数据
- c# 如何中List<object>中去掉object对象中的重复列数据?