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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linq匿名類型簡單概述

Linq有很多值得學(xué)習(xí)的地方,這里我們主要介紹Linq匿名類型,包括介紹使用Linq匿名類型的地方都策略性地省略了局部變量的類型等方面。

目前創(chuàng)新互聯(lián)已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、大石橋網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

Linq匿名類型

如果我們想繼續(xù)使用我們現(xiàn)有的語法來返回名稱和地址,我們很快便會面臨問題,即不存在僅包含 Name 和 Address 的類型。雖然我們?nèi)匀豢梢跃帉懘瞬樵?,但是必須引入該類型?/p>

 
 
 
  1. class CustomerTuple  
  2. {  
  3. public string Name;  
  4. public string Address;  
  5.  
  6. public CustomerTuple(string name, string address)  
  7. {  
  8. this.Name = name;  
  9. this.Address = address;  
  10. }  
  11. }  

然后我們才能使用該類型,即此處的 CustomerTuple,以生成我們查詢的結(jié)果。

 
 
 
  1. IEnumerable locals = customers.Where(c => c.ZipCode == 91822).
    Select(c => new CustomerTuple(c.Name, c.Address));  

那確實像許多用于投影出字段子集的樣板代碼。而且還往往不清楚如何命名此種類型。 CustomerTuple 確實是個好名稱嗎?如果投影出 Name 和 Age 又該如何命名?那也可以叫做 CustomerTuple。因此,問題在于我們擁有樣板代碼,而且似乎無法為我們創(chuàng)建的類型找到任何恰當(dāng)?shù)拿Q。此外,還可能需要許多不同的類型,如何管理這些類型很快便可能成為一個棘手的問題。

這正是Linq匿名類型要解決的問題。此功能主要允許在無需指定名稱的情況下創(chuàng)建結(jié)構(gòu)化類型。如果我們使用Linq匿名類型重新編寫上述查詢,其代碼如下所示:

 
 
 
  1. locals = customers.Where(c => c.ZipCode == 91822).
    Select(c => new { c.Name, c.Address });  

此代碼會隱式創(chuàng)建一個具有 Name 和 Address 字段的類型:

 
 
 
  1. class   
  2. {  
  3. public string Name;  
  4. public string Address;  

此類型不能通過名稱引用,因為它沒有名稱。創(chuàng)建Linq匿名類型時,可顯式聲明字段的名稱。例如,如果正在創(chuàng)建的字段派生于一條復(fù)雜的表達(dá)式,或純粹不需要名稱,就可以更改名稱:

 
 
 
  1. locals = customers.Where(c => c.ZipCode == 91822).Select(c => new { 
    FullName = c.FirstName + “ “ + c.LastName, HomeAddress = c.Address }); 

在此情形下,生成的類型具有名為 FullName 和 HomeAddress 的字段。

這樣我們又向理想世界前進(jìn)了一步,但仍存在一個問題。您將發(fā)現(xiàn),我在任何使用Linq匿名類型的地方都策略性地省略了局部變量的類型。顯然我們不能聲明Linq匿名類型的名稱,那我們?nèi)绾问褂盟鼈儯?/p>

【編輯推薦】

  1. LINQ匿名類型分析
  2. LINQ Where子句介紹
  3. LINQ使用Where擴(kuò)展方法
  4. 介紹LINQ一些強(qiáng)大功能
  5. Linq使用Select淺談

網(wǎng)站標(biāo)題:Linq匿名類型簡單概述
網(wǎng)頁URL:http://www.5511xx.com/article/dpedjci.html