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

开发 后端
本文将介绍.NET方法演化史,从Delegate到Lambda再到LINQ。其中LINQ旨在成为,在 .NET 中,访问不同类型数据源的统一标准。希望对大家有所帮助。

在最近比较新的项目中,已经开始在大量使用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中的代理,我不想回忆了,太痛苦:<

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

【编辑推荐】

  1. 使用LINQ查询泛型字典Dictionary
  2. 浅析Linq to SQL更新数据时容易忽略的问题
  3. 浅谈LINQ to SQL集成数据库语言优劣
  4. LINQ横向对比foreach方法
  5. 浅谈LINQ如何插入删除和更新数据库记录备注
责任编辑:彭凡 来源: cnblogs
相关推荐

2023-08-07 18:45:30

电商订单订单类型批量发货

2021-01-18 12:31:46

物联网

2009-08-19 09:40:57

软件方法论

2018-08-03 16:00:09

人工智能神经网络高级算法

2019-10-21 13:03:04

编程语言PythonJava

2012-07-06 11:03:15

Intel等灯等灯

2020-06-30 18:04:41

RPA应用

2009-05-25 15:00:20

2023-12-20 14:44:33

软件开发DevOpsNoOps

2016-11-28 16:23:23

戴尔

2022-12-15 17:15:42

数据库NoSQL

2011-05-25 14:59:35

if elseswitch case

2019-10-09 16:14:30

Web服务器Tomcat

2020-05-17 13:59:37

物联网工业物联网工业4.0

2020-08-13 17:18:20

Kubernetes边缘容器

2019-04-11 15:45:08

ReactMixin前端

2017-09-12 15:26:44

2013-04-08 17:13:14

2021-08-12 18:48:31

响应式编程Bio

2014-01-07 09:02:59

点赞
收藏

51CTO技术栈公众号