我有一个字典,我想找到具有最高价值的密钥。
例如,如果我有
Key | Value
a | 1
b | 2
c | 3
我希望c能够被退回。
我现在有这个,但它只搜索最高值,我不知道如何返回密钥。
var max = occurrences.Max(x => x.Value);
答案 0 :(得分:8)
var maxKey = occurrences.OrderByDescending(x => x.Value).First().Key;
答案 1 :(得分:5)
您需要包含 MoreLinq
并使用 MaxBy
var result = occurrences.MaxBy(kvp => kvp.Value).Key;
答案 2 :(得分:0)
m_Id | m_Mobile | m_ReceiveFromBranch
________________________________________
1 12345 1
2 12345 5
3 12345 1 //->Duplicate of m_Id 1
4 99999 1
5 88888 2
6 88888 5
7 88888 2 //->Duplicate of m_Id 5
请记住检查max是否为空。
答案 3 :(得分:0)
这里有一个解决方案,考虑字典中是否有多个具有最大值的键?
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();