使用linq c#在值列表中查找第二个Max
如何使用Linq
和C#
在值列表中找到第二个最大数字?
例如,我有这个列表:
List ListOfNums = new List {1, 5, 7, -1, 4, 8};
有没有一种方法可以获得列表中第二个最大值7?
var secondMax = ListOfNums.OrderByDescending(r => r).Skip(1).FirstOrDefault();
要么
var secondMax = ListOfNums.OrderByDescending(r=> r).Take(2).LastOrDefault();
只需将其转换为数组并获取第二个元素
List ListOfNums = new List { 1, 5, 7, -1, 4, 8 }; var sndmax = ListOfNums.OrderByDescending(x => x).ToArray()[1];
以下是使用List
方法的另一种方法:
ListOfNums.Sort(); var max = ListOfNums[1];