zoukankan      html  css  js  c++  java
  • C# Except

    我们往往需要把一个列表中,去除另外一个列表的元素,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。可结果呢,运行结果如下:

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

  • 相关阅读:
    输入汉字转拼音
    DBGridEh(RestoreGridLayoutIni)用法
    当选中节点的同时选中父节点
    implsments
    HTML中的post和get
    SmartUpload中文乱码
    调查平台,考试系统类型的数据收集型项目
    final
    职业生涯中12个最致命的想法
    abstract
  • 原文地址:https://www.cnblogs.com/sdner/p/8390732.html
Copyright © 2011-2022 走看看