[筆記] 如何取得二維陣列最大與最小值
廢話
在論壇看到有人提出此問題,怕之後忘記,做個筆記記錄一下
一維陣列
首先來看,一維陣列取最大值與最小值的方式
int[] myIntArray = new int[5] { 1, 5, 9, 11, 18 };
myIntArray.Max(); // 最大值
myIntArray.Min(); // 最小值
這很簡單,相信大家都比我還要熟悉
二維陣列
如果今天換成是二維陣列時,該如何取得最大與最小值呢?(只能用陣列、不能使用其他方法)
看到這問題我第一個想法是在塞入二維陣列資料時,在用一個變數去記錄最大數(或最小數)
查了一下MSDN與Google之後,發現有更簡單的作法
var myArr = new int[1, 99] { { 2, 2 }, { 3, 4 } };
int max = myArr.Cast<int>().Max();
int min = myArr.Cast<int>().Min();
在.NET Framework 3.5之後,Array類別實做了System.Collections.Generic.IEnumerable<T> 介面(記得要加入System.Linq 命名空間),我們可以使用 Enumerable.Max<TResult>方法取得我們要的答案。打完收工!
參考
Obtaining the min and max of a two-dimensional array using LINQ