我在各种 StackOverflow 答案中看到,我可以通过执行类似
的操作来获得列表中第 N 个最大的元素var nthFromTop = items.OrderByDescending().Skip(N-1).First();
但是如果列表中没有重复项,这不是才有效吗?如果列表包含重复项,是否有办法使用 LINQ 获取第 N 个最大元素(或元素集)?如果没有,在 C# 中执行此操作的最有效方法是什么?
最佳答案
如果要获取所有元素的集合,使用GroupBy
var items = new[] {1, 1, 2, 2, 3, 4, 4};
var thirdLargest = items
.GroupBy(x => x)
.OrderByDescending(group => group.Key)
.ElementAt(2);
关于c# - 如何使用 LINQ 从具有重复项的列表中获取第 N 个最大元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24455950/