我正在使用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做到吗?
答案 0 :(得分:6)
虽然您可以将Math.Min
和Math.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);