簡體   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