Нахождение минимального элемента массива

В одной из предыдущих статей мы рассмотрели, как найти максимальный элемент массива, а сегодня хочу показать, как найти минимальный элемент массива в языке c#

Нахождение минимального элемента

Для нахождения минимального элемента массива мы будем использовать метод Min, как один из наиболее распространённых способов для решения данной задачи.

Одномерный массив

В первом примере рассмотрим, как получить минимальное значение в одномерном массиве.

int [] numbers = {90, 3, 56, 1, 9000, 78};
int minValue = numbers.Min();
//Результат: 1

Многомерный массив

Многомерный массив, в отличие от одномерного массива, не позволяет нам напрямую обратиться к методу Min. Но, это можно легко исправить, если воспользоваться методом Cast<T>, с помощью которого можно преобразовать многомерный массив в обобщенную коллекцию типа IEnumerable<T>. После чего нам станет доступен метод Min, и мы сможем найти минимальное значение массива, например:

int [,] numbers = {{200, 30, 6, 9, 28, 178},{2, 39, 61, 69, 8, 56}};
IEnumerable<int> colNumbs = numbers.Cast<int>();
int minValue = colNumbs.Min();
//Результат: 2

Данный код можно немного сократить:

int minValue = numbers.Cast<int>().Min();

Jagged массив

Чтобы найти минимальное значение в Jagged массиве, нужно также как и в предыдущем примере, преобразовать содержимое массива в объект типа IEnumerable<T>, но только выполнить эту операцию нужно не с помощью метода Cast, а например, с помощью метода SelectMany:

int [][] numbers = { new int [] {122,13,5,7,9},
new int [] {3,4,6,90},
new int [] {11,22,77,55}};
int minValue = numbers.SelectMany(x => x).Min();
//Результат: 3

Читайте также:

4 комментария

  1. int [] numbers = {90, 3, 56, 1, 9000, 78};
    int minValue = numbers.Min();

    А как узнать индекс этого элемента?

  2. int indexMin = Array.IndexOf(numbers, minValue);

  3. Franny says:

    А если минимальных элементов несколько? Как вывести их количество?

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*