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

时间:2015-04-30 19:50:15

标签: 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();

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

2 个答案:

答案 0 :(得分:6)

虽然您可以将Math.MinMath.Max用于所需内容,但使用LINQ To Objects的方式更为简单,因为它们旨在处理集合,这就是我们所做的在这里处理:

var smallestThree = numbers.OrderBy(x => x).Take(3);
var largestThree = numbers.OrderByDescending(x => x).Take(3);

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

lblS1Val.Text = string.Join(", ", largestThree);
lblO1Val.Text = string.Join(", ", smallestThree);

答案 1 :(得分:5)

numbers.OrderBy(n=>n).Take(3);
numbers.OrderByDescending(n=>n).Take(3);