如何從一個清單中移除另一個清單中包含的項目
假設您有兩個列表,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中文網其他相關文章!