只有累積,沒有奇蹟

2018年9月14日 星期五

[C#] 如何取得二維陣列最大與最小值

廢話
在論壇看到有人提出此問題,怕之後忘記,做個筆記記錄一下

一維陣列
首先來看,一維陣列取最大值與最小值的方式
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>方法取得我們要的答案。打完收工!

參考

0 意見:

張貼留言

Copyright © m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com