[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