码迷,mamicode.com
首页 > Windows程序 > 详细

C# Except

时间:2018-01-31 11:25:56      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:int   reac   remove   cep   list   需要   nbsp   exce   注意   

我们往往需要把一个列表中,去除另外一个列表的元素,C#提供了很好的方法,Except。

但是往往不小心就掉进坑里了。

看下面的代码:

static void Main(string[] args)
        {
            List<int> allItem = new List<int>();
            allItem.Add(1);
            allItem.Add(2);
            allItem.Add(3);
            allItem.Add(4);
            allItem.Add(3);
            allItem.Add(2);

            List<int> removedItems = new List<int>();
            removedItems.Add(1);
            removedItems.Add(2);

            allItem = allItem.Except(removedItems).ToList();
            Console.WriteLine("count:" + allItem.Count);

            Console.WriteLine("items:");

            foreach (int item in allItem)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }

 

首先,要注意的是,Except不是直接对原对象直接移除,所以如果想改变原来的对象,那么需要重新赋值。如:allItems = allItems.Except(removedItems).ToList()

其次,上面的例子中,最后allItems中剩下一个元素?表面上看,我以为剩下3个,一个4和两个3。可结果呢,运行结果如下:

技术分享图片

没错,就是把剩下元素中的重复的项也去除了,而可能不是我们原本想要达到的目的。

 

C# Except

标签:int   reac   remove   cep   list   需要   nbsp   exce   注意   

原文地址:https://www.cnblogs.com/sdner/p/8390732.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!