查找 int 数组中的第 n 个最大数组
本文关键字:数组 int 查找 | 更新日期: 2024-11-01 01:19:53
我需要能够找到int
array
中第 n 个最大的数字,我已经有一个返回一些东西的 linq
语句,但它没有传递设置的用例。array
是:
var numbers = new[] { 5, 7, 5, 3, 6, 7, 9 };
我的代码是:
var result = numbers.GroupBy(x => x)
.OrderByDescending(group => group.Key)
.SkipWhile(group =>
{
n -= group.Count();
return n > 0;
})
.First()
.ToArray();
我不明白为什么我没有得到预期的结果?
result[0] == 9
result[1] == 7
在集合按降序排序后,您可以使用 Take()
来获取n
最大的项目:
var result = numbers.GroupBy(x => x)
.OrderByDescending(group => group.Key)
.Take(n)
.Select(group => group.Key)
.ToArray();
dotnetfiddle demo
或者,如果您打算只获取第 n 项,请使用 Skip(n-1).Take(1)
。