我有一个字典,我用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,但我无法访问它
感谢您的帮助
答案 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)
不会维护排序顺序。