在我的字典(int,int)中,我试图获取值为3且密钥最大的密钥。 如果我想获取值为3的键,我可以使用此代码:
var max = double_list.FirstOrDefault(x => x.Value == 3).Key;
但是如果我的词典中包含多个值为3的项目,我会得到第一个项目(参见" FirstOrDefault")3,我真正想要的是当有多个项目的值为3时想要按照键来比较项目,并获得具有最高键的项目。
我希望得到18,而不是12.我希望你能理解我的问题是什么。对不起我的英文不好,任何意见都非常感谢!
答案 0 :(得分:9)
最简单的方法就是使用Max
:
var max = dictionary.Where(x => x.Value == 3).Max(x => x.Key);
如果您想获得的不仅仅是最高密钥,您可以使用以下内容:
var topTwo = dictionary.Where(x => x.Value == 3)
.Select(x => x.Key)
.OrderByDescending(x => x)
.Take(2);
但如果您只想要最高的单键,我肯定会使用Max
。
答案 1 :(得分:0)
只需在查询中插入OrderByDescending
:
var max = double_list
.OrderByDescending(x => x.Value == 3)
.FirstOrDefault().Key;