2011-10-21 33 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