Linq Library概述
本文向大家介紹Linq Library,可能好多人還不了解Linq Library,沒(méi)有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
PDC 05上揭露了C# 3.0及Linq Project,什么是Linq呢?簡(jiǎn)單的說(shuō),Linq是一個(gè)語(yǔ)言層級(jí)的查詢語(yǔ)法Library,她可以讓我們以類SQL語(yǔ)法的方式來(lái)查詢語(yǔ)言中的變數(shù),例如陣列,Collections.以實(shí)例來(lái)說(shuō):
- static void ObjectQuery()
- {
- var people = new List ()
- {
- new Person { Age=12, Name="Bob" },
- new Person { Age=18, Name="Cindy" },
- new Person { Age=13 }
- };
- var teenagers = from p in people where p.Age > 12 && p.Age < 20 select p;
- Console.WriteLine("Result:");
- foreach(var val in teenagers)
- {
- Console.WriteLine("> Name = {0}, Age = {1}", val.Name, val.Age);
- }
- Console.ReadLine();}
- class Person
- {
- public int Age;
- public string Name;
- }
Person是一個(gè)類別,ObjectQuery函式中以Generic List建立了一個(gè)Person的Collection,此處的var型別是C# 3.0新增的型別,從語(yǔ)言面來(lái)看,這個(gè)型別可以被指定為任何型別,就像是Variant一樣,從Complier面來(lái)看,它是一個(gè)Lazy- determine型別,由Complier于編譯期間來(lái)決定真正的型別,接下來(lái)的奇特語(yǔ)法就是Linq.
- var teenagers = from p in people where p.Age > 12 && p.Age < 20 select p;
是不是覺(jué)得很像SQL呢?這段程式碼的意思是,由people中選出Age大于12小于20的元素,除了這種簡(jiǎn)單的查詢之外,Linq也支援Join,Distinct等語(yǔ)法.
基本上Linq只是一組Library,C# 3.0及VB.NET 9.0的Complier利用了這個(gè)Library來(lái)實(shí)現(xiàn)上面的新語(yǔ)法,所有的特殊語(yǔ)法都會(huì)被編譯器編成使用Linq Library的程式.
【編輯推薦】