如何查找 C# 字典中具有最高值的键



>我有一个字典,我想找到具有最高值的键。

例如,如果我有

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();

最新更新