从IList <int> items </int> </int>中删除IList <int>项

时间:2013-02-18 17:52:25

标签: c# list

我正在尝试从List<int> items2

中删除List<int>
List<int> item1 = new List<int> {1,2,3,4,5,6,7,8,9,10};
List<int> item2 = new List<int> {1,2,3,4};

从item1中删除item2值后,所需的结果为

item1 = {5,6,7,8,9,10 }

是否有任何直接方法或任何其他方法从另一个项目列表的内容中删除一个项目列表的内容,而不使用“for”或“foreach”?

1 个答案:

答案 0 :(得分:10)

某些某处将需要循环。您不必在 源代码中循环。至于你做什么......这取决于你的要求。

如果您将变量类型更改为List<int>,则可以使用List<T>.RemoveAll

item1.RemoveAll(x => item2.Contains(x));

或者您可以使用LINQ,如果您对item1更改值感到满意,可以引用其他列表:

item1 = item1.Except(item2).ToList();

请注意,上面的使item1成为一组不同的值 - 如果您有任何重复项,它们将被删除(即使它们不在{{ 1}})。

没有重复删除方面的替代方案:

item2

或者,如果item1 = item1.Where(x => !item2.Contains(x)).ToList(); 很大,则表现更好:

item2