如何在使用linq按值排序字典后获取值

时间:2010-03-25 11:38:35

标签: linq dictionary sorting

我有一个字典,我用linq按值排序,如何从排序后的结果中得到那些排序值

这就是我到目前为止所做的事情

Dictionary<char, int> lettersAcurr = new Dictionary<char, int>();//sort by int value
var sortedDict = (from entry in lettersAcurr orderby entry.Value descending select entry);

在调试期间我可以看到sortedDic有一个KeyValuePar,但我无法访问它

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

sortedDict是IEnumerable<KeyValuePair<char, int>>迭代它

答案 1 :(得分:0)

只是迭代它。

foreach (var kv in sortedDict)
{
     var value = kv.Value;
     ...
}

答案 2 :(得分:0)

如果您只想要char值,可以将查询修改为:

var sortedDict = (from entry in lettersAcurr orderby entry.Value descending select entry.Key);

将为您提供IEnumerable<char>

的结果

如果你想再次在字典中,你可能会想要

var q = (from entry in lettersAcurr orderby entry.Value descending select entry.Key).ToDictionary(x => x);

但要记住字典要排序,因为Dictionary(Of T)不会维护排序顺序。