2009-11-09 94 views
0

我有一個項目的IList數據的列表,看起來榜單:如何篩選重複的列表項

GenId  TestMode 
    1   0 
    1   1 
    3   0 
    3   1 
    4  NULL 
    2  NULL 

我想從我的列表中有測試模式== 0如果同一genid,配置除去genid,配置指數有一個測試模式== 1.

確實有人有一個簡潔的方式做到這一點?

回答

1

LINQ非常擅長針對對象集合的運行操作。下面的查詢應該給你你在找什麼:

var query = list.Where(i => i.TestMode == 1 || 
        !list.Exists(i2 => i2.GenId == i.GenId && i2.TestMode == 1)); 

foreach (var item in query) { 
    // do something with items. 
} 

這裏做的事情就是找地方TESTMODE等於1項(包括如果有),或以其他方式檢查是否有另一其中TestMode等於1的元素,並排除該記錄是否存在。

+0

這樣做的工作 - 謝謝。 – CurlyFro 2009-11-09 19:40:36