Получение min и max двумерного массива с помощью LINQ

Как бы вы получили min и max двумерного массива с помощью LINQ? И чтобы быть ясным, я имею в виду min/max всех элементов в массиве (а не min/max определенного измерения).

или мне просто придется пройти через старомодный путь?

4 ответов


С такими реализует IEnumerable вы можете просто сделать это:

var arr = new int[2, 2] {{1,2}, {3, 4}};
int max = arr.Cast<int>().Max();    //or Min

Это, кажется, работает:

IEnumerable<int> allValues = myArray.Cast<int>();
int min = allValues.Min();
int max = allValues.Max();

вы можете реализовать список> и найти min и max foreach и сохранить его в список, а затем вы можете легко найти Min() и Max() из этого списка всех значений в одномерном списке. Это первое, что приходит на ум, мне самому интересно, и я собираюсь посмотреть, может ли google захватить более чистый подход.


вот вариант:

var maxarr = (from int v in aarray select v).Max();

где aarray-int [,]