Предполагая, что у вас есть как минимум 2 элемента в массиве, вы можете использовать OrderBy()
и ElementAt()
:
var numbers = new[] { 855, 3, 64, 6, 24, 75, 3, 6, 24, 45 };
var secondLowest = numbers.OrderBy(num => num).ElementAt(1);
var secondHighest = numbers.OrderBy(num => num).Reverse().ElementAt(1);
Получение самого высокого и самого низкогоэто проще и может быть сделано с использованием Max()
и Min()
LINQ методов.
var lowest = numbers.Min();
var highest = numbers.Max();
Если вы беспокоитесь о сложности, вы можете достичь лучшегорезультат с использованием Алгоритм выбора .С его помощью вы можете выполнять операции в O (n) сложности.