打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
3.7.1 理解Lambda表达式(2)

3.7.1 理解Lambda表达式(2)

2010-12-23 13:07 张昌龙/辛永平 机械工业出版社 字号:T | T

《ASP.NET 4.0从入门到精通》第3章C# 4.0语言特色,本章讨论在C# 4.0语言中许多增强的功能。首先介绍隐式类型声明,由编译器根据上下文进行类型推断,接下来讨论使用自动属性功能简化编写重复性的属性代码。对象初始化器可以简化开发人员的赋值代码,接下来讨论如何对一个现有类进行扩展的扩展方法。本节为大家介绍Lambda表达式。

AD:51CTO首届中国APP创新评选大赛正在招募>>

3.7.1   理解Lambda表达式(2)

在这段代码中,将原本创建单独方法的过程更改为一个内联代码块。现在对Main方法进行稍加更改,来查看程序的运行结果。代码如下:

  1. static void Main(string[] args)  
  2. {  
  3.      Console.WriteLine("传统的委托代码示例, 运行结果为:");  
  4.      FindListDelegate();  
  5.      Console.WriteLine("使用匿名方法的示例, 运行结果为:");  
  6.      FindListAnonymousMethod();  

程序的运行结果如图3.19所示。可以看到,使用匿名方法简化了代码的编写过程,而运行的结果是相同的。

 
图3.19   使用匿名方法后的运行结果
现在,考虑使用Lambda来进一步简化这个过程,同样添加一个新的方法名为FindListLambdaExpression,这个方法的代码如下所示:
  1. //使用Lambda来实现搜索过程  
  2. static void FindListLambdaExpression()  
  3. {  
  4.      //先创建一个泛型的List类  
  5.      List<string> list = new List<string>();  
  6.      list.AddRange(new string[] { "语言书", "软件书",
    "政治", "图书", "开发人员" });  
  7.      //在这里, 使用了Lambda来创建一个委托方法  
  8.      List<string> bookCategory = list.FindAll(str =>
     str.EndsWith("书"));  
  9.      foreach (string str in bookCategory)  
  10.      {  
  11.          Console.WriteLine("{0}\t", str);  
  12.      }  

在这段代码中,添加了C# 4.0的新语法str=>str.EndsWith(“书”),这就是一个Lambda表达式。现在只需要这么短短的几个字符就完成了原本需要单独创建一个方法的过程,而且语法相当简洁。同样地,将Main方法稍加更改,然后运行示例程序,代码如下所示:

  1. static void Main(string[] args)  
  2. {  
  3.      Console.WriteLine("传统的委托代码示例,运行结果为:");  
  4.      FindListDelegate();  
  5.      Console.WriteLine("使用匿名方法的示例,运行结果为:");  
  6.      FindListAnonymousMethod();  
  7.      Console.WriteLine("使用Lambda的示例,运行结果为:");  
  8.      FindListLambdaExpression();  

按Ctrl+F5键直接运行示例程序,会发现使用Lambda之后,运行效果是相同的,如图3.20所示。

 
(点击查看大图)图3.20   添加Lambda表达式之后的运行结果
【责任编辑:云霞 TEL:(010)68476606】
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
匿名方法---将代码块作为参数传递给委托 - さびしい.Net/Java技术与技巧 - C...
C#中的Lambda表达式简介
委托_lambda_事件
基础知识---委托和 lambda
C# =>符号的使用
由浅入深表达式树(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服