Dez*_*ndo 13 c# linq dictionary
今天对你来说可能很简单,但我现在正在围成一圈.考虑这种情况:
var tempDictionary = new Dictionary<string, int>();
tempDictionary.Add("user 1", 5);
tempDictionary.Add("user 2", 3);
tempDictionary.Add("user 3", 5);
Console.WriteLine(tempDictionary.Min(x => x.Key) + " => " tempDictionary.Min(x => x.Value);
Run Code Online (Sandbox Code Playgroud)
以上返回"user 1 => 3".
你会如何在字典中以最低值返回密钥?我之后的输出看起来像这样:"user2 => 3"
有任何想法吗?
Saj*_*ran 25
使用morelinq
var keyR = tempDictionary.MinBy(kvp => kvp.Value).Key;
Run Code Online (Sandbox Code Playgroud)
要么
var min = tempDictionary.Aggregate((l, r) => l.Value < r.Value ? l : r).Key;
Run Code Online (Sandbox Code Playgroud)
var keyAndValue = tempDictionary.OrderBy(kvp => kvp.Value).First();
Console.WriteLine("{0} => {1}", keyAndValue.Key, keyAndValue.Value);
Run Code Online (Sandbox Code Playgroud)
如果数据集的大小是不平凡的,你可能会考虑在MinBy扩展moreLinq.这是 SO上托管的实现.