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

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

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

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

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

这似乎有效:

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

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

这是变种:

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

其中aarray是int [,]