首頁 >後端開發 >C++ >如何有效地從一個清單中刪除另一個清單中存在的項目?

如何有效地從一個清單中刪除另一個清單中存在的項目?

DDD
DDD原創
2025-01-13 14:21:44497瀏覽

How Can I Efficiently Remove Items from One List That Exist in Another?

從另一個清單中移除項目

問題:

如何遍歷泛型項目清單並將其從另一個項目清單中移除?

場景:

考慮以下假設範例:

<code>List<汽车> list1 = GetTheList();
List<汽车> list2 = GetSomeOtherList();</code>

目標是使用foreach循環遍歷list1,並移除list2中也存在的任何項目。但是,foreach循環不提供基於索引的方法。

解答:

要實現此目標,您可以使用Except方法:

<code>List<汽车> result = list2.Except(list1).ToList();</code>

這將建立一個新的清單result,其中包含list2中不存在於list1中的項目。 Except方法不會修改原始清單。

最佳化:

為了進一步最佳化程式碼,您可以消除對臨時變數的需求:

<code>List<汽车> result = GetSomeOtherList().Except(GetTheList()).ToList();</code>

要注意的是,Except傳回一個包含計算差異的新列表,因此它不會修改list1或list2。

以上是如何有效地從一個清單中刪除另一個清單中存在的項目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn