>我有一个字典,我想找到具有最高值的键。
例如,如果我有
Key | Value
a | 1
b | 2
c | 3
我希望 c 被退回。
我目前有这个,但它只搜索最高值,我不确定如何返回密钥。
var max = occurrences.Max(x => x.Value);
var maxKey = occurrences.OrderByDescending(x => x.Value).First().Key;
您需要
包含MoreLinq
并使用MaxBy
var result = occurrences.MaxBy(kvp => kvp.Value).Key;
var dict = new Dictionary<string,int>();
dict.Add("a",1);
dict.Add("b",2);
dict.Add("c",3);
var max= dict.OrderByDescending(x => x.Value).FirstOrDefault();
请记住检查 max 是否为空。
这里还有一个解决方案,考虑字典中是否有多个键具有最大值?
Dictionary<char, int> dic = new Dictionary<char, int>();
dic.Add('a', 1);
dic.Add('b', 2);
dic.Add('c', 3);
dic.Add('d', 3);
var maxValue = (int)dic.Max(i => i.Value);
List<char> maxKeys = dic.Where(i => i.Value == maxValue).Select(i => i.Key).ToList();