繁体   English   中英

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

[英]Obtaining the min and max of a two-dimensional array using LINQ

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

或者我只需要通过老式的方式循环?

由于 Array 实现了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();

这是变体:

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

其中 aarray 是 int[,]

您可以实现List<List<type>>并在foreach循环中找到最小值和最大值,并将其存储到List 然后,您可以轻松地从一维列表中所有值的列表中找到Min()Max()

这是我想到的第一件事,我自己对此很好奇,我会看看谷歌是否可以采用更简洁的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM