[C# 3.0 入门] [第一章 Lambda表达式] 第五节:Lambda表达式的使用范例 & Lambda表达式的各种变体
2010-09-30 20:59:45 来源:WEB开发网List18 循环内判定的情况
然而,如果使用Lambda表达式,就会有一种完全不同的答案。要判断所有数组的元素是否都满足一定的条件,只需用一个调用一个方法的Lambda表达式,事情就有着落了。在不损失可读性的范围内,把Lambda表达式写进if语句的条件中就能轻松的实现了。
实际写出来的例子如下。Any方法是,集合的元素中只要含有一个满足参数的Lambda表达式的元素就返回true。这个用到了.NET Framework的扩展方法,为了能够使用,要在代码前面加上“using System.Linq;”。
1using System;
2using System.Linq; // 为了使用Any方法
3
4class Program
5{
6 static void Main(string[] args)
7 {
8 int[] a = { 1, 2, 0 };
9
10 if (a.Any(x => x == 0))
11 {
12 Console.WriteLine("数组中含有0");
13 return;
14 }
15 foreach (int n in a) Console.WriteLine(100 / n);
16 }
17 // 输出:数组中含有0。
18}
19
List19 使用Lambda表达式在计算之前就检验0值
如果是不能使用.Net Framework 3.5的场合,List19的if语句就要写成下面的形式(稍稍有些冗长),这样在.NET Framework 2.0下也同样能够使用。
if (Array.FindIndex(a, x => x == 0) >= 0)
这个例子,用Lambda表达式对集合数据的处理,感觉就像对单个值进行判断的“if ( n == 0 )”一样,对集合使用“if (a.Any(x => x == 0))”就能够处理。
总之吧,使用循环的方法对集合元素进行判断处理的方法,用仅仅一句if就能给替换了。如果经常使用这种技术,代码的结构也会更明快简洁。
更多精彩
赞助商链接