自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開(kāi)發(fā) 后端
本文將介紹.NET方法演化史,從Delegate到Lambda再到LINQ。其中LINQ旨在成為,在 .NET 中,訪問(wèn)不同類型數(shù)據(jù)源的統(tǒng)一標(biāo)準(zhǔn)。希望對(duì)大家有所幫助。

在最近比較新的項(xiàng)目中,已經(jīng)開(kāi)始在大量使用LINQtoSQL了。LINQ旨在成為,在.NET中,訪問(wèn)不同類型數(shù)據(jù)源的統(tǒng)一標(biāo)準(zhǔn)。我個(gè)人不贊同,也不希望如此。有些時(shí)候,一個(gè)龐大的殺毒軟件,還不如一個(gè)幾十K的專殺工具來(lái)的輕便。當(dāng)然,LINQ的優(yōu)勢(shì),在于對(duì)結(jié)構(gòu)化數(shù)據(jù)的處理.

于是就有了:

LINQ to Object

LINQ to XML

LINQ to SQL

這些目標(biāo)數(shù)據(jù)源共同特性之一----較強(qiáng)的結(jié)構(gòu)性。

........從LINQ追溯Lambda

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

上面是一個(gè)很簡(jiǎn)單的LINQtoObject.有的人就會(huì)說(shuō),這和我用一個(gè)foreach的工作量差不多啊!如果你這樣想,就太小瞧他了.配合join..onorderbyletnestingwhere,效率的提高,那不是一點(diǎn)點(diǎn)了哈.:)

具體的例子,不需要給出。點(diǎn)到即可。

LINQ中的filter,是從LambdaExpression演化而來(lái).

上面的例子稍作變化,就可以看到我們親切的Lambda了.

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

........從Lambda追溯Delegate

LambdaExpression是C#3.0中出現(xiàn)的神奇之物,它由C#2.0中的匿名函數(shù)演化而來(lái)。同時(shí),也將匿名函數(shù)的作用,發(fā)揮到了***.有了它,我們甚至都可以不用指定參數(shù)的類型。

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

回想一下,在C#2.0中,我們是如何使用匿名函數(shù)的:

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

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

不僅方法不能省,還要使用被代理函數(shù)的作為參數(shù),構(gòu)造代理對(duì)象.

【編輯推薦】

  1. 使用LINQ查詢泛型字典Dictionary
  2. 淺析Linq to SQL更新數(shù)據(jù)時(shí)容易忽略的問(wèn)題
  3. 淺談LINQ to SQL集成數(shù)據(jù)庫(kù)語(yǔ)言優(yōu)劣
  4. LINQ橫向?qū)Ρ萬(wàn)oreach方法
  5. 淺談LINQ如何插入刪除和更新數(shù)據(jù)庫(kù)記錄備注
責(zé)任編輯:彭凡 來(lái)源: cnblogs
相關(guān)推薦

2021-01-18 12:31:46

物聯(lián)網(wǎng)

2023-08-07 18:45:30

電商訂單訂單類型批量發(fā)貨

2009-08-19 09:40:57

軟件方法論

2018-08-03 16:00:09

人工智能神經(jīng)網(wǎng)絡(luò)高級(jí)算法

2019-10-21 13:03:04

編程語(yǔ)言PythonJava

2012-07-06 11:03:15

Intel等燈等燈

2020-06-30 18:04:41

RPA應(yīng)用

2009-05-25 15:00:20

2016-11-28 16:23:23

戴爾

2023-12-20 14:44:33

軟件開(kāi)發(fā)DevOpsNoOps

2022-12-15 17:15:42

數(shù)據(jù)庫(kù)NoSQL

2019-10-09 16:14:30

Web服務(wù)器Tomcat

2011-05-25 14:59:35

if elseswitch case

2024-09-25 15:38:30

數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)中臺(tái)數(shù)據(jù)飛輪

2024-09-20 13:11:06

數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)中臺(tái)數(shù)據(jù)飛輪

2024-09-23 17:20:14

2020-05-17 13:59:37

物聯(lián)網(wǎng)工業(yè)物聯(lián)網(wǎng)工業(yè)4.0

2013-04-08 17:13:14

2017-09-12 15:26:44

2020-08-13 17:18:20

Kubernetes邊緣容器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)