有效地從一個清單中刪除另一個清單中存在的元素 (C#)
許多程式設計任務需要從清單中刪除也出現在第二個清單中的元素。 本文演示了 C# 中實現此目的的兩種有效方法。
利用 LINQ 的 Except
方法
LINQ(語言整合查詢)使用 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
中不存在的元素。 ToList()
轉換是必要的,因為 Except
回傳 IEnumerable
而不是 List
。
替代方案:直接建立新清單
更簡化的方法涉及直接建立一個僅包含所需元素的新清單:
<code class="language-csharp">List<car> result = GetSomeOtherList().Except(GetTheList()).ToList();</code>
這實現了與前面的範例相同的結果,但不需要臨時變數。
重要考量:
上面介紹的兩種方法都會產生一個包含過濾元素的新清單。 原始清單(list1
和 list2
)保持不變。
以上是在 C# 中,如何從一個清單中刪除另一個清單中存在的項目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!