av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

C#Lambda表達(dá)式概述

C#新語(yǔ)言特性還是比較常見的東西,這里我們主要介紹C# Lambda表達(dá)式,包括介紹Lambda表達(dá)式參數(shù)類型可以是隱式類型或顯式類型等方面。

創(chuàng)新互聯(lián)專注于山陽(yáng)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供山陽(yáng)營(yíng)銷型網(wǎng)站建設(shè),山陽(yáng)網(wǎng)站制作、山陽(yáng)網(wǎng)頁(yè)設(shè)計(jì)、山陽(yáng)網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造山陽(yáng)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供山陽(yáng)網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

C# Lambda表達(dá)式

我們從“所有字符串查找包含YJingLee子字符串”說(shuō)起。在C# 2.0中,匿名方法允許我們以內(nèi)聯(lián)的方式來(lái)實(shí)現(xiàn)委托實(shí)例,它提供強(qiáng)大的函數(shù)式編程語(yǔ)言,但是標(biāo)記顯得相當(dāng)?shù)娜唛L(zhǎng)和帶有強(qiáng)制性。我們使用C# 2.0 中的匿名方法查找,代碼如下:

 
 
 
 
  1. var inString = list.FindAll(delegate(string s)  
  2. { return s.Indexof("YJingLee") >= 0; }); 

現(xiàn)在可以使用C# 3.0帶來(lái)的Lambda表達(dá)式允許我們使用一種更接近人的思維、更自然的方式來(lái)實(shí)現(xiàn)類似于匿名方法同樣的效果,看下面的代碼多么簡(jiǎn)潔:

 
 
 
 
  1. var inString = list.FindAll(s => s.Indexof("YJingLee") >= 0); 

Lambda表達(dá)式格式:(參數(shù)列表)=>表達(dá)式或語(yǔ)句塊
具體意義:定義Lambda接受參數(shù)列表,運(yùn)行表達(dá)式或語(yǔ)句塊返回表達(dá)式或語(yǔ)句塊的值傳給這個(gè)參數(shù)列表。

C# ambda表達(dá)式參數(shù)類型可以是隱式類型或顯式類型。在顯式列表中,每個(gè)參數(shù)的類型是顯式指定的,在隱式列表中,參數(shù)的類型由Lambda表達(dá)式出現(xiàn)的語(yǔ)境自動(dòng)推斷類型。
Lambda表達(dá)式的參數(shù)列表可以有一個(gè)或多個(gè)參數(shù),或者無(wú)參數(shù)。在有單一的隱型參數(shù)的lambda表達(dá)式中,圓括號(hào)可以從參數(shù)列表中省略。
例如:

 
 
 
 
  1. (x, y) => x * y;//多參數(shù),隱式類型=>表達(dá)式  
  2. x => x * 10;//單參數(shù),隱式類型=>表達(dá)式  
  3. x => { return x * 10; }; //單參數(shù),隱式類型=>語(yǔ)句塊  
  4. (int x) => x * 10;//單參數(shù),顯式類型=>表達(dá)式  
  5. (int x) => { return x * 10; };//單參數(shù),顯式類型=>語(yǔ)句塊  
  6. () => Console.WriteLine(); //無(wú)參數(shù) 

下面看這個(gè)例子:
在前面的帖子中,我們寫了一個(gè)User類及增加了2個(gè)人,接下來(lái),我們使用由LINQ提供的新的Where和Average方法來(lái)返回集合中的人的一個(gè)子集,以及計(jì)算這個(gè)集合中的人的平均年齡:

 
 
 
 
  1. List user = new List{  
  2. new User{Id=1,Name="YJingLee",Age=22},  
  3. new User{Id=2,Name="XieQing",Age=25},  
  4. };  
  5. //獲取特定人時(shí)所用的過(guò)濾條件,p參數(shù)屬于User類型  
  6. var results = user.Where(p => p.Name == "YJingLee").ToList();  
  7. //用User對(duì)象的Age值計(jì)算平均年齡  
  8. var average = user.Average(p => p.Age); 

效果圖如下:

對(duì)這個(gè)Lambda表達(dá)式做個(gè)簡(jiǎn)要分析:

 
 
 
 
  1. var resultsdelegate = user.Where(delegate(User p)  
  2. {  
  3. return p.Name == "YJingLee";// 返回一個(gè)布爾值  
  4. });  
  5. var averagedelegate = user.Average(delegate(User p)  
  6. {  
  7. return p.Age;  
  8. }); 

C# Lambda表達(dá)式L可以被轉(zhuǎn)換為委托類型D,需要滿足以下條件:
L的參數(shù)類型要與D的參數(shù)個(gè)數(shù)相等,類型相同,返回類型相同,無(wú)論是表達(dá)式,還是語(yǔ)句塊。注意隱式類型要參與類型辨析。


名稱欄目:C#Lambda表達(dá)式概述
文章來(lái)源:http://uogjgqi.cn/article/dpcocjg.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流