如何使用LINQ获取二维数组的最小值和最大值?要清楚,我的意思是数组中所有项目的最小值/最大值(不是特定维度的最小值/最大值)。
或者我只是要以老式的方式循环?
答案 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()。这是我想到的第一件事,我自己很好奇,我会看看谷歌是否可以采取更加干净的方法。