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

教你如何實(shí)現(xiàn)LINQ查詢(xún)語(yǔ)句

開(kāi)發(fā) 后端
實(shí)現(xiàn)LINQ查詢(xún)語(yǔ)句有三個(gè)步驟,他們分別是獲取數(shù)據(jù)源(任何查詢(xún)的必備工作)、創(chuàng)建查詢(xún)、執(zhí)行查詢(xún)。本文就從這三個(gè)方面對(duì)實(shí)現(xiàn)LINQ查詢(xún)語(yǔ)句做簡(jiǎn)單的介紹。

實(shí)現(xiàn)LINQ查詢(xún)語(yǔ)句有三個(gè)步驟,他們分別是獲取數(shù)據(jù)源(任何查詢(xún)的必備工作)、創(chuàng)建查詢(xún)、執(zhí)行查詢(xún)。本文就從這三個(gè)方面對(duì)實(shí)現(xiàn)LINQ查詢(xún)語(yǔ)句做簡(jiǎn)單的介紹。

示例:

  1. class IntroToLINQ  
  2. {  
  3.        static void Main()  
  4.        {  
  5.                  //獲取數(shù)據(jù)源(此處由一個(gè)數(shù)組充當(dāng))  
  6.                  int[] numbers = new int[7]{0,1,2,3,4,5,6};  
  7.                  //創(chuàng)建查詢(xún)(numQuery 是 IEnumerable 類(lèi)型)  
  8.                  var numQuery = from num in numbers where (num%2) ==
  9.  0 select num;  
  10.                  // 執(zhí)行查詢(xún)  
  11.                  foreach(int num in numQuery)  
  12.                  {  
  13.                         Console.write("{0,1}",num);  
  14.                  }  
  15.        }  
  16. }  
  17.  

實(shí)現(xiàn)LINQ查詢(xún)語(yǔ)句之?dāng)?shù)據(jù)源:

上面示例中,數(shù)據(jù)源是一個(gè)數(shù)組,隱式支持泛型IEnumerable(T)接口,而支持IEnumerable(T)或派生接口的類(lèi)型稱(chēng)為"可查詢(xún)類(lèi)型"。因此數(shù)組即可用LINQ進(jìn)行查詢(xún)。

如果數(shù)據(jù)源還沒(méi)有作為可查詢(xún)類(lèi)型出現(xiàn)在內(nèi)存中,則LINQ提供程序必須以此方式表示數(shù)據(jù)源。例如,LINQ to XML將 xml文檔加載到可查詢(xún)的XElement類(lèi)型中:

  1. using System.Xml.Linq   
  2. XElement contacts = XElement.Load(@"c:\my.xml");//XElement 表示一個(gè)xml元素  

在LINQ to SQL 中,必須先創(chuàng)建對(duì)象關(guān)系映射,然后針對(duì)這些對(duì)象編寫(xiě)查詢(xún)。LINQ會(huì)處理對(duì)象查詢(xún)與數(shù)據(jù)庫(kù)間的通信。

  1. using System.Data.Linq;  
  2. DataContext db = new DataContext(@"c:\northwind.mdf");  

實(shí)現(xiàn)LINQ查詢(xún)語(yǔ)句之創(chuàng)建查詢(xún):

查詢(xún)要先存儲(chǔ)在查詢(xún)變量中,并用查詢(xún)表達(dá)式進(jìn)行初始化。這個(gè)查詢(xún)變量不執(zhí)行任何操作也不返回?cái)?shù)據(jù),只有在執(zhí)行查詢(xún)時(shí)用來(lái)存儲(chǔ)為生成結(jié)果而必須的信息。

實(shí)現(xiàn)LINQ查詢(xún)語(yǔ)句之執(zhí)行查詢(xún):

上例中使用foreach的地方就是檢索查詢(xún)結(jié)果的地方,它在創(chuàng)建后才執(zhí)行,因此稱(chēng)為延遲執(zhí)行,num保存返回的值。

當(dāng)需要用到聚合函數(shù)查詢(xún)時(shí),則是強(qiáng)制立即執(zhí)行

  1. var numQuery = from num in numbers where (num%2) == 0 select num;  
  2. int evenNumCount = evenNumCount.Count();  

若普通查詢(xún)也要立即執(zhí)行,可以在查詢(xún)語(yǔ)句后調(diào)用ToList()或ToArray()方法。

以上就是對(duì)如何實(shí)現(xiàn)LINQ查詢(xún)語(yǔ)句的簡(jiǎn)單介紹。

【編輯推薦】

  1. 詳談Linq查詢(xún)結(jié)果分析的方法
  2. 簡(jiǎn)簡(jiǎn)單單學(xué)習(xí)Linq查詢(xún)語(yǔ)法
  3. 詳細(xì)闡述Linq插入數(shù)據(jù)的操作方法
  4. 淺析Linq插入數(shù)據(jù)的實(shí)現(xiàn)方法
  5. 簡(jiǎn)單解決Linq多條件組合問(wèn)題
責(zé)任編輯:阡陌 來(lái)源: 愛(ài)好者博墅
相關(guān)推薦

2009-09-17 10:27:55

linq存儲(chǔ)過(guò)程

2009-09-14 18:23:59

LINQ嵌套查詢(xún)

2009-09-15 15:18:40

Linq連接查詢(xún)

2009-09-15 11:34:47

Linq多條件查詢(xún)

2009-09-14 19:14:51

LINQ動(dòng)態(tài)查詢(xún)

2009-04-28 09:38:53

SQL優(yōu)化物理查詢(xún)

2010-11-04 09:43:46

LINQ to SQL

2009-08-27 10:22:40

LINQ查詢(xún)

2009-09-10 10:37:15

LINQ to SQL

2009-09-08 11:25:42

Linq foreac

2009-09-09 18:03:47

LINQ to SQL

2009-09-10 18:02:23

LINQ to SQL

2009-09-07 22:29:04

LINQ組合查詢(xún)

2012-04-13 10:00:04

LINQ

2009-08-27 13:10:54

LINQ from子句

2009-09-17 13:15:20

LINQ查詢(xún)

2009-09-16 10:38:43

LINQ查詢(xún)

2009-09-15 10:46:04

LINQ to SQL

2009-09-16 10:08:06

LINQ查詢(xún)

2009-09-09 16:53:53

LINQ查詢(xún)語(yǔ)法
點(diǎn)贊
收藏

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