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 9c#.net ListLinq

解决方案 »

  1.   

    想知道你的那个数字9是哪里来的?b.Select(x => x.gameId).Except(a.Select(x => x.gameId));
      

  2.   


    数据类型转换错误了,返回值是一个 list《models》
      

  3.   

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

  4.   


    说的对,感觉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.   

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

  6.   


    说的对,感觉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反正不知道你要干什么的,乱乱的,如果只是要结果就这样吧.
      

  7.   


    说的对,感觉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
      

  8.   

    感觉思路有问题,没保存一个数据都会有不重复的ID,假如今天3D是4,5,8.十天后刚好也开了4,5,8,你就应该把两次的都保存,因为期数不同!
      

  9.   

    cc = bb.Except(aa).ToList();
    你理解Excep的用法吗?知道他是干什么的么