2011-10-17 264 views
1

我有兩個類型爲SelectListItem的列表。 我想刪除列表中的項目存在於另一個列表中。 我嘗試了所有類型的代碼卻徒勞無功,請幫助我 我試過代碼:基於另一個列表從列表中刪除項目

Channels=New List<SelectListItem>(); 
RequestedChannels=New List<SelectListItem>(); 
Channels = GetChannelList(); 
RequestedChannels = GetChannelList(UserID, ControlChannels); 

第一種情況

Channels = Channels.Except(RequestedChannels).ToList(); 

第二種情況

Channels = Channels.Where(item => !RequestedChannels.Contains(item)).ToList(); 

第三屆情況下

foreach (SelectListItem item in RequestedChannels) 
       Channels.Remove(item); 

但這些案件不起作用。 請幫忙。 感謝和問候, 蘇拉傑

回答

4

你需要重寫爲除Equals和GetHashCode的和包含的方法來工作

比較自定義數據類型,實現IEquatable(Of T)已通用 接口,並提供您自己的GetHashCode和Equals方法的 類型。默認的相等比較器Default用於比較實現IEquatable(Of T)的類型的值。

的細節

Enumerable.Except
相關問題