当前位置:编程学习 > C#/ASP.NET >>

List数组,如何在对比两个List<>表格后,获取两个表格里面都没有的数据

List 1 2 3 4 5 6 
list 2 3 4 5 6 7 
 关于这个问题,昨晚问了各位,得到一个答复是使用c = b.Except(a).ToList();
这个答复对于List<string> 而言非常有用,但是,我传递的是一个表单数组,所以没有用
这样A表中有数据  1 2 3 4 5 
B表中有数据 3 4 5 6 7 8 9  
我想得到的  在两个表里面不存重复的数值 即  6 7 8 9 
以下是小弟写的代码 不可行,请求指教 
 List<ForSpiderSmitInfo> a = new List<ForSpiderSmitInfo>();   
            for (int i = 0; i < 5; i++)
            {
                ForSpiderSmitInfo sp = new ForSpiderSmitInfo()
                {
                    gamenumber = i.ToString(),
                    getime = i.ToString(),
                    gameId = i.ToString(),
                    opsequle = "结果"+i.ToString(),
                    optime = i.ToString()
                };
                a.Add(sp);
            }
            List<ForSpiderSmitInfo> b = new List<ForSpiderSmitInfo>();
            for (int i = 3; i < 9; i++)
            {
                ForSpiderSmitInfo sp = new ForSpiderSmitInfo()
                {
                    gamenumber = i.ToString(),
                    getime = i.ToString(),
                    gameId = i.ToString(),
                    opsequle = "结果"+i.ToString(),
                    optime = i.ToString()
                };
                b.Add(sp);
            }        
            List<ForSpiderSmitInfo> c = new List<ForSpiderSmitInfo>();
            c = b.Except(a).ToList();
             foreach (var item in c)
             {
                 Console.WriteLine("..0"+item.gamenumber.ToString());
               //  Console.WriteLine( ""+item.opsequle.ToString());
             }
             Console.ReadKey();

 这是运行的结果

  我要的答案是 不存在重复的 数据  既 6 7 8 9 c# .net  List Linq --------------------编程问答-------------------- 你自己的逻辑你自己搞清楚了吗?不重复的数字,1,2也是啊 --------------------编程问答-------------------- 想知道你的那个数字9是哪里来的?

b.Select(x => x.gameId).Except(a.Select(x => x.gameId)); --------------------编程问答--------------------
引用 1 楼 wddw1986 的回复:
你自己的逻辑你自己搞清楚了吗?不重复的数字,1,2也是啊


说的对,感觉LZ没说清到底要什么! --------------------编程问答--------------------
数据类型转换错误了,返回值是一个 list《models》 --------------------编程问答-------------------- List数组,如何在对比两个List<>表格后,获取两个表格里面都没有的数据  --------------------编程问答-------------------- 你好好分析一下这句话 --------------------编程问答--------------------
引用 3 楼 porenasckx 的回复:
Quote: 引用 1 楼 wddw1986 的回复:

你自己的逻辑你自己搞清楚了吗?不重复的数字,1,2也是啊


说的对,感觉LZ没说清到底要什么!


            List<string> aa = new List<string>();
             List<string> bb = new List<string>();
             List<string> cc = new List<string>();
             aa.Add("1");
             aa.Add("2");
             aa.Add("3");
             bb.Add("2");
             bb.Add("3");
             bb.Add("4");
             cc = bb.Except(aa).ToList();

上面这段代码 得出的结果是 4 

我想得到的结论 就是
   List<ForSpiderSmitInfo> a = new List<ForSpiderSmitInfo>();   
            for (int i = 1; i < 4; i++)
            {
                ForSpiderSmitInfo sp = new ForSpiderSmitInfo()
                {
                    gamenumber = i.ToString(),
                    getime = i.ToString(),
                    gameId = i.ToString(),
                    opsequle = "结果"+i.ToString(),
                    optime = i.ToString()
                };
                a.Add(sp);
            }
            List<ForSpiderSmitInfo> b = new List<ForSpiderSmitInfo>();
            for (int i = 2; i < 5; i++)
            {
                ForSpiderSmitInfo sp = new ForSpiderSmitInfo()
                {
                    gamenumber = i.ToString(),
                    getime = i.ToString(),
                    gameId = i.ToString(),
                    opsequle = "结果"+i.ToString(),
                    optime = i.ToString()
                };
                b.Add(sp);
            }        
            List<ForSpiderSmitInfo> c = new List<ForSpiderSmitInfo>();
            c = b.Except(a).ToList();
            // c = a.Union(b).Distinct().ToList();
             foreach (var item in c)
             {
                 Console.WriteLine("..0"+item.gamenumber.ToString());
               //  Console.WriteLine( ""+item.opsequle.ToString());
             }

 这段代码 得到的结果也是 4 --------------------编程问答--------------------
引用 5 楼 GodDices 的回复:
List数组,如何在对比两个List<>表格后,获取两个表格里面都没有的数据 

说错了,应该是得到  最新更新 的但是老表中不存在的数 上面的mode 就有
我先做做一个 程序,是获取网上东西,然后分析,然后保存到数据库 里面
 这个就是 防止重复数据保存
 比如 我拿一个彩票网址的开奖结果 第一次拿到的是期数是 1 2 3  第二次更新的 期数 是2 3 4 
 那么,我数据库中就要更新 第4期这个结果集。 --------------------编程问答--------------------
引用 7 楼 mynameare111 的回复:
Quote: 引用 3 楼 porenasckx 的回复:

Quote: 引用 1 楼 wddw1986 的回复:

你自己的逻辑你自己搞清楚了吗?不重复的数字,1,2也是啊


说的对,感觉LZ没说清到底要什么!


            List<string> aa = new List<string>();
             List<string> bb = new List<string>();
             List<string> cc = new List<string>();
             aa.Add("1");
             aa.Add("2");
             aa.Add("3");
             bb.Add("2");
             bb.Add("3");
             bb.Add("4");
             cc = bb.Except(aa).ToList();

上面这段代码 得出的结果是 4 

我想得到的结论 就是
   List<ForSpiderSmitInfo> a = new List<ForSpiderSmitInfo>();   
            for (int i = 1; i < 4; i++)
            {
                ForSpiderSmitInfo sp = new ForSpiderSmitInfo()
                {
                    gamenumber = i.ToString(),
                    getime = i.ToString(),
                    gameId = i.ToString(),
                    opsequle = "结果"+i.ToString(),
                    optime = i.ToString()
                };
                a.Add(sp);
            }
            List<ForSpiderSmitInfo> b = new List<ForSpiderSmitInfo>();
            for (int i = 2; i < 5; i++)
            {
                ForSpiderSmitInfo sp = new ForSpiderSmitInfo()
                {
                    gamenumber = i.ToString(),
                    getime = i.ToString(),
                    gameId = i.ToString(),
                    opsequle = "结果"+i.ToString(),
                    optime = i.ToString()
                };
                b.Add(sp);
            }        
             var query=b.Select(x => x.gameId).Except(a.Select(x => x.gameId));
             foreach (var item in query)
             {
                 Console.WriteLine("..0"+item);

             }

 这段代码 得到的结果也是 4


反正不知道你要干什么的,乱乱的,如果只是要结果就这样吧. --------------------编程问答--------------------
引用 9 楼 yyantifa 的回复:
Quote: 引用 7 楼 mynameare111 的回复:

Quote: 引用 3 楼 porenasckx 的回复:

Quote: 引用 1 楼 wddw1986 的回复:

你自己的逻辑你自己搞清楚了吗?不重复的数字,1,2也是啊


说的对,感觉LZ没说清到底要什么!


            List<string> aa = new List<string>();
             List<string> bb = new List<string>();
             List<string> cc = new List<string>();
             aa.Add("1");
             aa.Add("2");
             aa.Add("3");
             bb.Add("2");
             bb.Add("3");
             bb.Add("4");
             cc = bb.Except(aa).ToList();

上面这段代码 得出的结果是 4 

我想得到的结论 就是
   List<ForSpiderSmitInfo> a = new List<ForSpiderSmitInfo>();   
            for (int i = 1; i < 4; i++)
            {
                ForSpiderSmitInfo sp = new ForSpiderSmitInfo()
                {
                    gamenumber = i.ToString(),
                    getime = i.ToString(),
                    gameId = i.ToString(),
                    opsequle = "结果"+i.ToString(),
                    optime = i.ToString()
                };
                a.Add(sp);
            }
            List<ForSpiderSmitInfo> b = new List<ForSpiderSmitInfo>();
            for (int i = 2; i < 5; i++)
            {
                ForSpiderSmitInfo sp = new ForSpiderSmitInfo()
                {
                    gamenumber = i.ToString(),
                    getime = i.ToString(),
                    gameId = i.ToString(),
                    opsequle = "结果"+i.ToString(),
                    optime = i.ToString()
                };
                b.Add(sp);
            }        
             var query=b.Select(x => x.gameId).Except(a.Select(x => x.gameId));
             foreach (var item in query)
             {
                 Console.WriteLine("..0"+item);

             }

 这段代码 得到的结果也是 4


反正不知道你要干什么的,乱乱的,如果只是要结果就这样吧.

我要拿出 4 --------------------编程问答-------------------- 感觉思路有问题,没保存一个数据都会有不重复的ID,假如今天3D是4,5,8.十天后刚好也开了4,5,8,你就应该把两次的都保存,因为期数不同! --------------------编程问答-------------------- cc = bb.Except(aa).ToList();
你理解Excep的用法吗?知道他是干什么的么

补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,