gpt4 book ai didi

c# - 从一个 List 中删除在另一个 List 中找到的元素

转载 作者:IT王子 更新时间:2023-10-29 04:51:52 33 4
gpt4 key购买 nike

我有两个列表

 List<T> list1 = new List<T>();
List<T> list2 = new List<T>();

我想从 list1 中删除所有元素,这些元素也存在于 list2 中。当然,我可以遍历第一个循环来查找 list2 中的每个元素,但我正在寻找优雅的解决方案。

谢谢!

最佳答案

要更改实际的 list1,您可以使用

list1.RemoveAll(item => list2.Contains(item));

您可能更喜欢简单地查询列表而不修改任何一个

var result = list1.Except(list2);

LukeH 在评论中提出了很好的建议。在第一个版本中,如果 list2 特别大,将列表加载到 HashSet<T> 中可能是值得的。在 RemoveAll 之前调用。如果列表很小,请不要担心。如果您不确定,请测试两种方式,然后您就会知道。

var theSet = new HashSet<YourType>(list2);
list1.RemoveAll(item => theSet.Contains(item));

关于c# - 从一个 List<T> 中删除在另一个 List<T> 中找到的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9295483/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com