日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Linq Lambda表達(dá)式基礎(chǔ)概括

在向大家詳細(xì)介紹Linq之前,首先讓大家了解下Linq Lambda表達(dá)式,然后全面介紹Linq。

Linq Lambda表達(dá)式

許多標(biāo)準(zhǔn)查詢操作符在對(duì)序列執(zhí)行運(yùn)算時(shí)都使用 Func 委托來(lái)處理單個(gè)元素。Linq Lambda表達(dá)式可與標(biāo)準(zhǔn)查詢操作符結(jié)合使用以代表委托。Linq Lambda表達(dá)式是創(chuàng)建委托實(shí)現(xiàn)的簡(jiǎn)略表達(dá)形式,并可用于匿名委托適用的所有場(chǎng)合。C# 和 Visual Basic? .NET 均支持 Linq Lambda表達(dá)式。但是,必須注意:由于 Visual Basic .NET 尚不支持匿名方法,Linq Lambda表達(dá)式可能僅包含一個(gè)語(yǔ)句。

讓我們來(lái)看看如何對(duì)一個(gè)整數(shù)數(shù)組使用 Single 操作符。這個(gè)整數(shù)數(shù)組的每個(gè)元素代表 2 的 1 到 10 次方。先創(chuàng)建此數(shù)組,然后使用 Single 操作符來(lái)檢索滿足 Linq Lambda表達(dá)式中指定條件的單個(gè)整數(shù)元素:

 
 
 
  1. int[] nums = { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 };  
  2. int singleNum = nums.Single(x => x > 16 && x < 64);  
  3. Console.WriteLine(singleNum.ToString()); 

Linq Lambda表達(dá)式包含多個(gè)關(guān)鍵部分。Linq Lambda表達(dá)式首先定義傳入委托的變量。在以上代碼示例中,x(在 => 操作符左側(cè)聲明)是參數(shù),代表傳遞給它的 nums 數(shù)組中的每個(gè)元素。Linq Lambda表達(dá)式的剩余部分代表數(shù)組中每個(gè)元素的評(píng)估邏輯??墒褂媚涿休p松地重新編寫以上表達(dá)式,如下所示:

 
 
 
  1. int singleNum = nums.Single(  
  2. delegate(int x) {return (x > 16 && x < 64); }  
  3. ) ; 

但是,此代碼的可讀性不及 Linq Lambda表達(dá)式。C# 2.0 引入了可使委托的傳遞稍微輕松些的匿名委托;但是,Linq Lambda表達(dá)式的簡(jiǎn)潔語(yǔ)法可使其更加簡(jiǎn)單。

First和Single

如果必須從序列中提取一個(gè)值,F(xiàn)irst、FirstOrDefault、Single 和 SingleOrDefault 操作符都非常有用。First 方法返回序列中的***個(gè)元素。First 有一個(gè)重載方法,可使用它來(lái)傳入 Linq Lambda表達(dá)式來(lái)代表一個(gè)條件。例如,如果要返回整數(shù)序列中整數(shù)元素大于 50 的***個(gè)元素,可使用以下代碼示例:

 
 
 
  1. int[] nums = { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 };  
  2. int num1 = nums.First();  
  3. int num2 = nums.First(x => x > 50);  
  4. int num3 = nums.FirstOrDefault(x => x > 5000);  
  5.  
  6. Console.WriteLine(  
  7. num1.ToString() + "-" +   
  8. num2.ToString() + "-" +   
  9. num3.ToString()); 

此代碼會(huì)查找***個(gè)元素 (1)、大于 50 的***個(gè)元素 (64) 以及大于 5,000 的***個(gè)元素。由于數(shù)組中沒有元素滿足第三個(gè) Linq Lambda表達(dá)式(數(shù)組中無(wú)整數(shù)大于 5,000),則如果代碼使用的是 First 操作符而非 FirstOrDefault,則會(huì)引發(fā)異常。在使用 FirstOrDefault 操作符時(shí),如果沒有元素滿足 Linq Lambda表達(dá)式,則會(huì)返回 0。First 操作符也可用于 LINQ to Entities 查詢,如下所示:

 
 
 
  1. using (Entities entities = new Entities())  
  2. {  
  3. var query = (from c in entities.Customers  
  4. select c).First(c => c.City.Equals("London"));  
  5. Console.WriteLine(query.CompanyName);  

在此示例中,將返回 London 城中的***個(gè)客戶。正如您所看到的,當(dāng) First 方法用于各種 LINQ 提供程序(在本例中為 LINQ to Objects 和 LINQ to Entities)時(shí),所用的語(yǔ)法并不會(huì)更改。

【編輯推薦】

  1. LINQ to SQL查詢分析
  2. LINQ查詢架構(gòu)簡(jiǎn)單介紹
  3. LINQ to SQL映射關(guān)系概述
  4. LINQ To SQL對(duì)象模型淺析
  5. LINQ to SQL映射列描述

文章名稱:Linq Lambda表達(dá)式基礎(chǔ)概括
瀏覽地址:http://www.dlmjj.cn/article/dhgjcpc.html