首页 >后端开发 >C++ >如何有效地从一个列表中删除另一个列表中存在的元素?

如何有效地从一个列表中删除另一个列表中存在的元素?

DDD
DDD原创
2025-01-13 14:17:42614浏览

How to Efficiently Remove Elements from One List That Exist in Another?

如何从一个列表中移除另一个列表中包含的项目

假设您有两个列表,list1 和 list2,您希望移除 list1 中也存在于 list2 中的所有项目。使用 foreach 循环迭代 list1 是不够的,因为它不是基于索引的。

解决方案:使用 Except 方法

.NET Framework 提供了 Except 方法,该方法返回一个新列表,其中包含第一个列表中不存在于第二个列表中的元素。它以两个列表作为参数,并逐个元素操作。

要使用 Except,您可以编写以下代码:

<code class="language-csharp">List<car> list1 = GetTheList();
List<car> list2 = GetSomeOtherList();
List<car> result = list2.Except(list1).ToList();</code>

生成的 result 列表将只包含 list2 中不在 list1 中的项目。

注意:Except 方法不会修改原始列表。它会创建一个包含结果的新列表。

简化语法

您可以使用方法链进一步简化上述代码:

<code class="language-csharp">List<car> result = GetSomeOtherList().Except(GetTheList()).ToList();</code>

此代码无需使用临时变量即可实现相同的结果。

以上是如何有效地从一个列表中删除另一个列表中存在的元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn