【发布时间】:2011-02-17 20:11:33
【问题描述】:
我正在尝试获取Dictionary<string, double> results中最大值的键。
这是我目前所拥有的:
double max = results.Max(kvp => kvp.Value);
return results.Where(kvp => kvp.Value == max).Select(kvp => kvp.Key).First();
但是,由于这似乎有点低效,我想知道是否有更好的方法来做到这一点。
【问题讨论】:
-
你的字典应该是
还是倒过来? -
你是对的,它是
。已更正。 -
为什么在where后面有一个.Select?我对 LINQ 不太了解,只是好奇
-
@CoffeeAddict .Select 允许他进行“投影”在这里,他将 KeyValuePair 转换为一个 Key。他本可以省略这部分,直接写信
.First().Key;来获取密钥。 -
@dss539 啊,有点晚了,但你是对的。这样会更有效率。
标签: c# linq dictionary max