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

------解决思路----------------------

            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()
------解决思路----------------------
引用:

            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();


这样?


这个轻松搞定。。
------解决思路----------------------

        private List<int> ExceptList(List<int> a, List<int> b)
        {
            return (a.Except(b).ToList());
        }

------解决思路----------------------
List<int> c = b.Except(a).ToList(); 轻松搞定
------解决思路----------------------
引用:

            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();


这样?

c#已经封装好了、
------解决思路----------------------
b.Except(a).Tolist()
------解决思路----------------------
引用:
这么大的数据 全取出来 感觉思路就不对,,从哪取的? 数据库?


是这样的,这种问题总是很可疑。不过我们也只能说“可疑”,因为并不知道人家的设计的上下文,所以无法做稍微宏观一点的评估。
------解决思路----------------------
引用:
list 2 中的内容放入 hashTable
list 1 中的内容逐个插入 list 2,发生 exception 就扔掉

通常我们不接受随便滥用exception的做法,因为你无法区分出到底是程序有某些bug还是真的属于 !hashtable2.ContainsKey(x) 的结果。

不要把bug当作逻辑控制,因为这会让将来诊断新问题时分不清真假。而且exception处理机制需要巨大的代价。

应该使用if(....containskey) 判断来预先设计程序流程,保留你还能分辨“到底有没有bug”的能力。
------解决思路----------------------
引用:

        private List<int> ExceptList(List<int> a, List<int> b)
        {
            return (a.Except(b).ToList());
        }
顶下