我正在使用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做到吗?
虽然你可以使用Math.Min和Math.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)
numbers.OrderBy(n=>n).Take(3);
numbers.OrderByDescending(n=>n).Take(3);
Run Code Online (Sandbox Code Playgroud)