如何使用Math.Max,Math.Min找到三个最大和三个最小的化学品

66M*_*Mhz 2 c# asp.net

我正在使用Math.Max和Math.Min来查找以下代码中的最大和最小小数:

decimal[] numbers = { d1, d2, d3, d4, d5, d6, d7, d8, d9, d10 };
decimal biggestNumber = numbers.Max();
decimal lowestNumber = numbers.Min();
lblS1Val.Text = biggestNumber.ToString();
lblO1Val.Text = lowestNumber.ToString();
Run Code Online (Sandbox Code Playgroud)

我想找到三个最大和三个最小的数字.我可以用Math.Max/Min做到吗?

Yuv*_*kov 6

虽然你可以使用Math.MinMath.Max你想要的东西,但是使用LINQ To Objects会更容易,因为它们被设计用于集合,这是我们在这里处理的:

var smallestThree = numbers.OrderBy(x => x).Take(3);
var largestThree = numbers.OrderByDescending(x => x).Take(3);
Run Code Online (Sandbox Code Playgroud)

请注意,这将返回IEnumerable<decimel>,因此如果您愿意ToString,可以使用string.Join:

lblS1Val.Text = string.Join(", ", largestThree);
lblO1Val.Text = string.Join(", ", smallestThree);
Run Code Online (Sandbox Code Playgroud)


Dom*_*Dom 5

numbers.OrderBy(n=>n).Take(3);
numbers.OrderByDescending(n=>n).Take(3);
Run Code Online (Sandbox Code Playgroud)