.NET方法演化史从Delegate到Lambda再到LINQ

在最近比较新的项目中,已经开始在大量使用LINQtoSQL了。LINQ旨在成为,在.NET中,访问不同类型数据源的统一标准。我个人不赞同,也不希望如此。有些时候,一个庞大的杀毒软件,还不如一个几十K的专杀工具来的轻便。当然,LINQ的优势,在于对结构化数据的处理.

创新互联公司是一家集网站建设,高安企业网站建设,高安品牌网站建设,网站定制,高安网站建设报价,网络营销,网络优化,高安网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

于是就有了:

LINQ to Object

LINQ to XML

LINQ to SQL

这些目标数据源共同特性之一----较强的结构性。

........从LINQ追溯Lambda

 
 
 
  1. //LINQtoObject
  2. IEnumerablefilteredResult=fromcustomerincustomers
  3. wherecustomer.FirstName=="Donna"
  4. selectcustomer;

上面是一个很简单的LINQtoObject.有的人就会说,这和我用一个foreach的工作量差不多啊!如果你这样想,就太小瞧他了.配合join..onorderbyletnestingwhere,效率的提高,那不是一点点了哈.:)

具体的例子,不需要给出。点到即可。

LINQ中的filter,是从LambdaExpression演化而来.

上面的例子稍作变化,就可以看到我们亲切的Lambda了.

 
 
 
  1. Lambda在LINQ
  2. //StatementLambdasinLINQ
  3. IEnumerablefilteredResult=(fromcustomerincustomers
  4. selectcustomer).Where(c=>c.FirstName.Equals("Donna"));

........从Lambda追溯Delegate

LambdaExpression是C#3.0中出现的神奇之物,它由C#2.0中的匿名函数演化而来。同时,也将匿名函数的作用,发挥到了***.有了它,我们甚至都可以不用指定参数的类型。

 
 
 
  1. BubbleSort(items,
  2. (firstItem,secondItem)=>
  3. {
  4. returnfirstItem});

回想一下,在C#2.0中,我们是如何使用匿名函数的:

 
 
 
  1. BubbleSort(items,
  2. delegate(intfirstItem,intsecondItem)
  3. {
  4. returnfirstItem});

至于C#1.1中的代理,我不想回忆了,太痛苦:<

不仅方法不能省,还要使用被代理函数的作为参数,构造代理对象.

当前文章:.NET方法演化史从Delegate到Lambda再到LINQ
网页网址:http://www.shufengxianlan.com/qtweb/news18/25318.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联