gpt4 book ai didi

c# - 如何从 C# 中的列表中选择第二高的值?

转载 作者:行者123 更新时间:2023-11-30 18:54:33 29 4
gpt4 key购买 nike

我有一个列表 List<int> myList = new List<int>() { 10, 20, 8, 20, 9, 5, 20, 10 }; ,我想选择第二高的值,在本例中为 10 .我写了这段代码并且它有效,但我想知道是否有更短更好的东西。

List<int> myList = new List<int>() { 10, 20, 8, 20, 9, 5, 20, 10 };
myList = myList.Distinct().ToList();
var descendingOrder = myList.OrderByDescending(i => i);
var sec = descendingOrder.Skip(1).First();

最佳答案

您可以停止使用中间变量和 ToList()

var secondHighest = 
myList
.Distinct()
.OrderByDescending(i => i);
.Skip(1)
.First();

这将与您的版本一样工作,但只需要一个语句而不是三个。

我发现阅读代码列表要容易得多。

每个 LINQ 方法都在它自己的行上调用,没有中间变量,尤其是那些会改变的变量(myList 被重新分配,这使得它更难理解)。

关于c# - 如何从 C# 中的列表中选择第二高的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53858570/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com