新聞中心
Linq有很多值得學(xué)習(xí)的地方,這里我們主要介紹LINQ重要組成部分,包括介紹Linq的查詢語法等方面。

成都創(chuàng)新互聯(lián)專注于永泰企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計,商城網(wǎng)站定制開發(fā)。永泰網(wǎng)站建設(shè)公司,為永泰等地區(qū)提供建站服務(wù)。全流程定制制作,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
為了讓Linq的查詢語法更接近于C#和VB.NET, C# 3.0和VB.NET 9.0基于的模板、匿名方法和迭代器都是LINQ重要組成部分,其中包括了以下的重要特性:
1.隱藏類型的本地變量
C# 3.0提供了一個新的關(guān)鍵子var,這樣程序員就可以不需要明確的定義一個本地變量,而是由編譯器根據(jù)表達(dá)式來初始化該變量。比如: var name="Linq";通過該項特性,不再需要重復(fù)本地變量的類型,編譯器會自動的推動類型,同時支持強(qiáng)類型。而且可以省去在foreach循環(huán)中定義迭代器類型
2.對象初始化程序
該特性讓我們能夠在對象定義的時候就給相應(yīng)的字段和屬性賦值.例如:
- class Person
- {
- ......
- public string Name { get; set; }
- public int Age { get; set; }
- public string Nation { get; set; }
- ......
- }
通過該特性就可以在一句聲明語句中初始化該變量
- var linq = new Person { Name = "Linq", Age = "2", Nation = "USA" };
對于集合也是一樣:
- ......
- var linqs = new List
[]{ - new Person{Name="Linq to SQL",Age=1,Nation="USA"},
- new Person{Name="Linq to XML",Age=2,Nation="UK"},
- new Person{Name="Linq to DataSet",Age=3,Nation="GR"}
- };
- ......
就類似于用Add方法添加對象。但是要注意必須是實現(xiàn)了IEnumerable接口和提供了Add方法的類.
3.Lambda表達(dá)式
linq => linq.Age==2
(輸入?yún)?shù)) (操作符) (表達(dá)式或是聲明模塊)
在沒有定義參數(shù)類型的情況下,輸入?yún)?shù)為隱藏類型。當(dāng)然可以定義具體類型,比如(Person linq)
4.擴(kuò)展方法
其實最簡單的實現(xiàn)就是在第一個參數(shù)前加上this關(guān)鍵字。因為this關(guān)鍵字指示編譯器把該方法作為擴(kuò)展方法對待。但是擴(kuò)展方法必須是聲明在非模板靜態(tài)類。
5.匿名類
其實匿名類只是沒有類型名稱而已,而實際的類型則由編譯器在創(chuàng)建時確定.例如:
- var linq=new{"SQL to Object",4,"CN"};
該特性的好處是在快速返回簡單的臨時結(jié)果,有利于開發(fā)。但是也有它的局限性在里面。主要是不能夠利用強(qiáng)類型的方式進(jìn)行類的操作,同時不能用作方法的返回值 (除非該方法的返回值是Object類型)。還有就是在C#中匿名類是不可變的,也就是一旦創(chuàng)建就不能改變當(dāng)中的屬性值。以上介紹LINQ重要組成部分。
分享標(biāo)題:LINQ重要組成部分簡介
網(wǎng)站URL:http://fisionsoft.com.cn/article/cccijod.html


咨詢
建站咨詢
