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

創(chuàng)新互聯(lián)基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺(tái)為眾多戶提供川西大數(shù)據(jù)中心 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。
示例:
- class IntroToLINQ
- {
- static void Main()
- {
- //獲取數(shù)據(jù)源(此處由一個(gè)數(shù)組充當(dāng))
- int[] numbers = new int[7]{0,1,2,3,4,5,6};
- //創(chuàng)建查詢(numQuery 是 IEnumerable 類型)
- var numQuery = from num in numbers where (num%2) ==
- 0 select num;
- // 執(zhí)行查詢
- foreach(int num in numQuery)
- {
- Console.write("{0,1}",num);
- }
- }
- }
實(shí)現(xiàn)LINQ查詢語(yǔ)句之?dāng)?shù)據(jù)源:
上面示例中,數(shù)據(jù)源是一個(gè)數(shù)組,隱式支持泛型IEnumerable(T)接口,而支持IEnumerable(T)或派生接口的類型稱為"可查詢類型"。因此數(shù)組即可用LINQ進(jìn)行查詢。
如果數(shù)據(jù)源還沒(méi)有作為可查詢類型出現(xiàn)在內(nèi)存中,則LINQ提供程序必須以此方式表示數(shù)據(jù)源。例如,LINQ to XML將 xml文檔加載到可查詢的XElement類型中:
- using System.Xml.Linq
- XElement contacts = XElement.Load(@"c:\my.xml");//XElement 表示一個(gè)xml元素
在LINQ to SQL 中,必須先創(chuàng)建對(duì)象關(guān)系映射,然后針對(duì)這些對(duì)象編寫查詢。LINQ會(huì)處理對(duì)象查詢與數(shù)據(jù)庫(kù)間的通信。
- using System.Data.Linq;
- DataContext db = new DataContext(@"c:\northwind.mdf");
實(shí)現(xiàn)LINQ查詢語(yǔ)句之創(chuàng)建查詢:
查詢要先存儲(chǔ)在查詢變量中,并用查詢表達(dá)式進(jìn)行初始化。這個(gè)查詢變量不執(zhí)行任何操作也不返回?cái)?shù)據(jù),只有在執(zhí)行查詢時(shí)用來(lái)存儲(chǔ)為生成結(jié)果而必須的信息。
實(shí)現(xiàn)LINQ查詢語(yǔ)句之執(zhí)行查詢:
上例中使用foreach的地方就是檢索查詢結(jié)果的地方,它在創(chuàng)建后才執(zhí)行,因此稱為延遲執(zhí)行,num保存返回的值。
當(dāng)需要用到聚合函數(shù)查詢時(shí),則是強(qiáng)制立即執(zhí)行
- var numQuery = from num in numbers where (num%2) == 0 select num;
- int evenNumCount = evenNumCount.Count();
若普通查詢也要立即執(zhí)行,可以在查詢語(yǔ)句后調(diào)用ToList()或ToArray()方法。
以上就是對(duì)如何實(shí)現(xiàn)LINQ查詢語(yǔ)句的簡(jiǎn)單介紹。
新聞標(biāo)題:教你如何實(shí)現(xiàn)LINQ查詢語(yǔ)句
URL鏈接:http://m.5511xx.com/article/dhjshcd.html


咨詢
建站咨詢
