当前位置: 首页 > 编程语言 > C# > 正文

[C# 3.0 入门] [第一章 Lambda表达式] 第五节

时间:2010-06-13 博客园 五斗米

[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