從另一個清單中移除項目
問題:
如何遍歷泛型項目清單並將其從另一個項目清單中移除?
場景:
考慮以下假設範例:
<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中文網其他相關文章!