Linq表達(dá)式樹(shù)簡(jiǎn)單介紹
Linq有很多值得學(xué)習(xí)的地方,這里我們主要介紹Linq的本質(zhì),包括介紹Linq表達(dá)式樹(shù)等方面。
Linq的本質(zhì)就是使用擴(kuò)展方法擴(kuò)展了對(duì)集合類(lèi)型的各種查詢(xún)方法,***返回的還是一個(gè)集合類(lèi)型。Linq的來(lái)龍去脈基本就說(shuō)清楚了,Linq to Sql 、Linq to DataSet 、Linq to Xml等等也就是Linq針對(duì)不同的數(shù)據(jù)源的一個(gè)具體實(shí)現(xiàn)的問(wèn)題,大家剩下的事情就是在工作中根據(jù)需要用不同的Linq實(shí)現(xiàn)寫(xiě)不同的Linq查詢(xún)了,以后有時(shí)間再寫(xiě)一些這方面的文章。
這里提供一些資源讓我們大家一起學(xué)習(xí)Linq這個(gè)強(qiáng)大的工具:
◆Visual Studio 2008 Training Kit
◆Visual Studio 2008 Samples Page
◆C#3.0規(guī)范完全版
1.解釋一下c#語(yǔ)言的版本問(wèn)題:
.Net Framework 的版本 對(duì)應(yīng)C#的版本
1.1 1.1
2.0,3.0 2.0
3.5 3.0
.Net Framework 3.5 和3.0實(shí)際上僅僅是.NetFramework 2.0的一個(gè)擴(kuò)展而已,3.0增加了WPF,WF,WCF,WCS等類(lèi)庫(kù),3.5增加了Linq、Asp.Net3.5等類(lèi)庫(kù)。
2.另外關(guān)于C#3.0里面唯一沒(méi)有談到的新特性
Linq表達(dá)式樹(shù)和Linq的關(guān)系我還不是很清楚,有沒(méi)有哪位達(dá)人可以解釋一下也好讓我對(duì)這篇blog做進(jìn)一步補(bǔ)充,先謝謝了!這里僅僅簡(jiǎn)單介紹一下:
Linq表達(dá)式樹(shù)允許將拉姆達(dá)表達(dá)式表現(xiàn)為數(shù)據(jù)結(jié)構(gòu)而不是可執(zhí)行代碼。一個(gè)可以轉(zhuǎn)換為委托類(lèi)型D的拉姆達(dá)表達(dá)式也可以轉(zhuǎn)換為一個(gè)類(lèi)型為System.Query.Expression
- private static void ExpressionTree()
- {
- string className = "***二班";
- Expression<FilterHandler> e = c => c.Name == className;
- Class c1 = new Class(1);
- c1.Name = className;
- FilterHandler f = e.Compile();
- Console.WriteLine(f(c1));
- }
【編輯推薦】