我正在尝试从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”?
答案 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