2011-07-15 119 views
1

可以說我有10個元素的列表框刪除項目的列表,我把一個List列表1中前4種元素,和元素的另一個列表list2中的其餘部分:從另一個列表中

list2 = listbox.remove(list1); 

像這樣的東西。這是可行的嗎?

謝謝。

回答

5

你可以用LINQ很容易地做到這一點:

list2 = listbox.Items.Except(list1); 

然而,Except需要比較listboxlist的項目和項目產生的結果。上面的例子(默認行爲)假定列表中的項目類型由參考比較唯一標識(在這種情況下聽起來很好)。

如果該類實現IEquatable<T>和/或覆蓋Equals,那麼Except將使用該方法來測試是否相等。

+1

'list2 = listbox.Items.Except(list1)'maybe? –

+0

@BalaR:的確如此。這是一個複製/粘貼錯誤,現在已經更正。 – Jon