[C# 3.0 入門] [第一章 Lambda表達式] 第五節:Lambda表達式的使用范例 & Lambda表達式的各種變體
Lambda表達式的使用范例
到現在為止的例子大多數,完全都是從文法上到功能上的說明,多數情況下不必使用Lambda表達式也能夠寫出來。最後,我還是來展示幾個有一定實用性的Lambda表達式的實例。
這裡是一個,輸入整形的數組,以其值為除數,執行除法運算後輸出結果的程序。因為要執行除法運算,所以輸入的值可能存在不能接受的值(0)的情況(就是說,這個示例代碼可以在輸入值不正確的情況下也能正常工作)。
那麼,這個程序的輸入如果是0的情況下,就提示信息然後必須退出。這個意圖如果用Lambda表達式該怎麼寫呢?
這個問題的要點有兩個。
l 在執行計算的循環中檢查0值的話,計算開始後會發生中斷。就是說,可能會同時計算值與錯誤信息兩者都輸出。
l 如果不輸出計算值只輸出錯誤信息的話,最好在計算的循環之前在設置一個檢查0值的循環。但是,這樣寫的話就用了兩個循環太冗長了。
總之,兩個方法都有缺點。換做筆者,如果有“計算開始前應該先檢查完畢”的要求,去除繁冗更重要,所以更願意選擇在循環內判定。
1using System;
2
3class Program
4{
5 static void Main(string[] args)
6 {
7 int[] a = { 1, 2, 0 };
8
9 foreach (int n in a)
10 {
11 if ( n == 0 )
12 {
13 Console.WriteLine("數組裡面含有0。");
14 return;
15 }
16 Console.WriteLine(100 / n);
17 }
18 // 輸出:
19 // 100
20 // 50
21 // 數組裡面含有0。
22 }
23}
24
25