使用LINQ获取二维数组的最小值和最大值

时间:2010-06-15 21:33:27

标签: c# linq arrays multidimensional-array

如何使用LINQ获取二维数组的最小值和最大值?要清楚,我的意思是数组中所有项目的最小值/最大值(不是特定维度的最小值/最大值)。

或者我只是要以老式的方式循环?

4 个答案:

答案 0 :(得分:27)

由于Array实现了IEnumerable,你可以这样做:

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

答案 1 :(得分:8)

这似乎有效:

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

答案 2 :(得分:1)

这是变体:

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

其中array是int [,]

答案 3 :(得分:0)

你可以实现一个List&gt;找到min和max foreach并将其存储到List中,然后您可以从单个List列表中的所有值的列表中轻松找到Min()和Max()。这是我想到的第一件事,我自己很好奇,我会看看谷歌是否可以采取更加干净的方法。