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

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

看下面的代码:

static void Main(string[] args)
{
List<int> allItem = new List<int>();
allItem.Add();
allItem.Add();
allItem.Add();
allItem.Add();
allItem.Add();
allItem.Add(); List<int> removedItems = new List<int>();
removedItems.Add();
removedItems.Add(); 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。可结果呢,运行结果如下:

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

随机推荐

  1. poj 3685 二分

    Matrix Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 7415   Accepted: 2197 Descriptio ...

  2. QCon技术干货:个推基于Docker和Kubernetes的微服务实践

    2016年伊始,Docker无比兴盛,如今Kubernetes万人瞩目.在这个无比需要创新与速度的时代,由容器.微服务.DevOps构成的云原生席卷整个IT界.在近期举办的QCon全球软件开发大会上, ...

  3. pyqt5的代码

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  4. P3355 骑士共存问题

    P3355 骑士共存问题 题目描述 在一个 n*n (n <= 200)个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示.棋盘上某些方格设置了障碍,骑士不得进入 对于给定的 n*n ...

  5. 博世传感器调试笔记(二)加速度及陀螺仪传感器BMI160

    一.功能参数简介bosch Sensortec公司推出的最新BMI160惯性测量单元将最顶尖的16位3轴超低重力加速度计和超低功耗3轴陀螺仪集成于单一封装.MI160采用14管脚LGA封装,尺寸为2. ...

  6. c# 的一些基本操作或属性

    http下载文件,不保存到服务器,直接使用浏览器下载 /// <summary> /// 根据url下载文件 /// </summary> /// <param name ...

  7. [USACO07NOV]挤奶的时间Milking Time

    https://daniu.luogu.org/problemnew/show/2889 按右端点从小到大排序后DP dp[i] 到第i个时间段的最大产奶量 不能按左端点排序,第i段由第j段更新时,第 ...

  8. Git之远程库与本地库交互

    对于开发人员而言,有时候在公司干完会到家还得接着干,为了方便同步代码,于是乎,可通过GitHub代码托管平台实现代码云同步. GitHub账号开通.创建远程仓库及初始化等操作此处不做赘述: Git内部 ...

  9. Java并发编程原理与实战一:聊聊并发

    一.大纲 •你真的了解并发吗 •多线程和并发 •多线程和多进程 •线程一定快吗 •学习并发的四个阶段 •学习目标 •适合人群 •荐书   二.学习并发的四个阶段 •熟练掌握API,能够完成并发编程 • ...

  10. java多线程获取返回结果--Callable和Future示例

    package test.guyezhai.thread; import java.util.ArrayList; import java.util.Date; import java.util.Li ...