C# 操作2个list进展比较
C# 操作2个list进行比较。
现在有两个list,分别是list1,list2.
两个list都有相同的字段只是数据不一样,如:
list1:a list2:b
1 2
2 3
3 4
然后我想得出的结果是list1中有的而list2中没有的数据。
就是比较后,list1只有‘1’这个数据。
求一个详细而简单的例子!
最好不要循环。因为list1数据最少也是10W以上。。list的数据大概是100W
------解决思路----------------------
这样?
------解决思路----------------------
------解决思路----------------------
a.Except(b).ToList()
------解决思路----------------------
这个轻松搞定。。
------解决思路----------------------
------解决思路----------------------
List<int> c = b.Except(a).ToList(); 轻松搞定
------解决思路----------------------
c#已经封装好了、
------解决思路----------------------
b.Except(a).Tolist()
------解决思路----------------------
是这样的,这种问题总是很可疑。不过我们也只能说“可疑”,因为并不知道人家的设计的上下文,所以无法做稍微宏观一点的评估。
------解决思路----------------------
通常我们不接受随便滥用exception的做法,因为你无法区分出到底是程序有某些bug还是真的属于 !hashtable2.ContainsKey(x) 的结果。
不要把bug当作逻辑控制,因为这会让将来诊断新问题时分不清真假。而且exception处理机制需要巨大的代价。
应该使用if(....containskey) 判断来预先设计程序流程,保留你还能分辨“到底有没有bug”的能力。
------解决思路----------------------
顶下
现在有两个list,分别是list1,list2.
两个list都有相同的字段只是数据不一样,如:
list1:a list2:b
1 2
2 3
3 4
然后我想得出的结果是list1中有的而list2中没有的数据。
就是比较后,list1只有‘1’这个数据。
求一个详细而简单的例子!
最好不要循环。因为list1数据最少也是10W以上。。list的数据大概是100W
------解决思路----------------------
List<int> a = new List<int>() { 1, 2, 3, 6, 8, 7 };
List<int> b = new List<int>() { 1, 2, 3, 4, 5, 6 };
List<int> c = b.Except(a).ToList();
foreach (int i in c)
{
Console.WriteLine(i); //4 5
}
Console.Read();
这样?
------解决思路----------------------
List<int> a = new List<int> { 1,2,3};
List<int> b = new List<int> { 2,3,3};
a= a.Except(b).ToList();
求差集就可以了
------解决思路----------------------
a.Except(b).ToList()
------解决思路----------------------
这个轻松搞定。。
------解决思路----------------------
private List<int> ExceptList(List<int> a, List<int> b)
{
return (a.Except(b).ToList());
}
------解决思路----------------------
List<int> c = b.Except(a).ToList(); 轻松搞定
------解决思路----------------------
c#已经封装好了、
------解决思路----------------------
b.Except(a).Tolist()
------解决思路----------------------
是这样的,这种问题总是很可疑。不过我们也只能说“可疑”,因为并不知道人家的设计的上下文,所以无法做稍微宏观一点的评估。
------解决思路----------------------
通常我们不接受随便滥用exception的做法,因为你无法区分出到底是程序有某些bug还是真的属于 !hashtable2.ContainsKey(x) 的结果。
不要把bug当作逻辑控制,因为这会让将来诊断新问题时分不清真假。而且exception处理机制需要巨大的代价。
应该使用if(....containskey) 判断来预先设计程序流程,保留你还能分辨“到底有没有bug”的能力。
------解决思路----------------------
顶下