如何从一个列表中移除另一个列表中包含的项目
假设您有两个列表,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中文网其他相关文章!