一尘不染

从另一个列表中删除项目

c#

我试图弄清楚如何遍历要从另一个项目列表中删除的项目的一般列表。

假设我有一个假设的例子

List<car> list1 = GetTheList();
List<car> list2 = GetSomeOtherList();

我想用一个foreach遍历list1并删除List2中也包含的List1中的每个项目。

我不太确定该怎么做,因为foreach不是基于索引的。


阅读 231

收藏
2020-05-19

共1个答案

一尘不染

您可以使用Except

List<car> list1 = GetTheList();
List<car> list2 = GetSomeOtherList();
List<car> result = list2.Except(list1).ToList();

您甚至可能不需要这些临时变量:

List<car> result = GetSomeOtherList().Except(GetTheList()).ToList();

请注意,Except这不会修改任何一个列表-它会使用结果创建一个新列表。

2020-05-19