日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
C#Lambda表達式概述

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

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

C# Lambda表達式

我們從“所有字符串查找包含YJingLee子字符串”說起。在C# 2.0中,匿名方法允許我們以內聯的方式來實現委托實例,它提供強大的函數式編程語言,但是標記顯得相當的冗長和帶有強制性。我們使用C# 2.0 中的匿名方法查找,代碼如下:

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

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

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

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

C# ambda表達式參數類型可以是隱式類型或顯式類型。在顯式列表中,每個參數的類型是顯式指定的,在隱式列表中,參數的類型由Lambda表達式出現的語境自動推斷類型。
Lambda表達式的參數列表可以有一個或多個參數,或者無參數。在有單一的隱型參數的lambda表達式中,圓括號可以從參數列表中省略。
例如:

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

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

 
 
 
 
  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. //獲取特定人時所用的過濾條件,p參數屬于User類型  
  6. var results = user.Where(p => p.Name == "YJingLee").ToList();  
  7. //用User對象的Age值計算平均年齡  
  8. var average = user.Average(p => p.Age); 

效果圖如下:

對這個Lambda表達式做個簡要分析:

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

C# Lambda表達式L可以被轉換為委托類型D,需要滿足以下條件:
L的參數類型要與D的參數個數相等,類型相同,返回類型相同,無論是表達式,還是語句塊。注意隱式類型要參與類型辨析。


網站標題:C#Lambda表達式概述
當前地址:http://m.5511xx.com/article/dpcocjg.html