2011-10-21 71 views
1

我想終於得到我的周圍LINQ的頭,但我有以下掙扎收集關鍵...獲得從KeyValuePairs

我有KeyValuePairs的集合,定義如下:

IList<KeyValuePair<int, MyCustomType>> 

其中KeyValuePair的int Key允許在集合中重複。

如何從這個集合中獲得唯一鍵的集合(數組,IList - 我不在乎)?

我知道我需要使用不同的,但我在我的收藏與KeyValuePair掙扎,並在重點越來越...

+0

我可以推薦http://powercollections.codeplex.com/,它有一個多字典,每個鍵可以有多個值。 –

回答

4

剛:

var keys = pairs.Select(x => x.Key) 
       .Distinct() 
       .ToList(); 

當然,如果對的集合最初來自字典,您可以刪除Distinct()調用,因爲它們已經不同。

+0

很酷,謝謝你。 – geoid

3
list.Select(pair => pair.Key) 
    .Distinct() 
    .ToArray(); 
+0

謝謝你的工作。正是通過lambda傳遞給我的東西。 – geoid