字典中的不同值<tkey,tvalue> </tkey,tvalue>

时间:2009-07-20 19:21:14

标签: c# .net linq distinct

我正在尝试在字典列表上循环显示不同的值:

所以我有一个关键值对字典。

如何从字典列表中获取字符串键的不同值?

4 个答案:

答案 0 :(得分:23)

var distinctList = mydict.Values.Distinct().ToList();

或者,您不需要调用ToList():

foreach(var value in mydict.Values.Distinct())
{
  // deal with it. 
}

编辑:我误读了您的问题,并认为您想要字典中的不同值。上面的代码提供了。

键自动区分。所以只需使用

foreach(var key in mydict.Keys)
{
  // deal with it
}

答案 1 :(得分:5)

键在字典中是不同的。 按照定义

所以 myDict.Keys 是一个独特的键列表。

答案 2 :(得分:2)

循环使用不同的键并对每个值执行某些操作...

foreach( dictionary.Keys )
{
    // your code
}

如果您正在使用C#3.0并且可以访问LINQ:

只需获取一组不同的值:

// you may need to pass Distinct an IEqualityComparer<TSource>
// if default equality semantics are not appropriate...
foreach( dictionary.Values.Distinct() )
{
}

答案 3 :(得分:0)

如果字典定义为:

Dictionary<string,MyType> theDictionary =  ...

然后你可以使用

var distinctKeys = theDictionary.Keys;

这使用Dictionary.Keys属性。如果您需要列表,可以使用:

var dictionaryKeysAsList = theDictionary.Keys.ToList();

因为它是一本字典,所以键已经是不同的了。

如果你试图在字典中找到所有不同的值(而不是键 - 在问题中不清楚),你可以使用:

var distinctDictionaryValues = theDictionary.Values.Distinct(); // .ToList();
相关问题