當前位置:成語大全網 - 書法字典 - LINQ的語法例子

LINQ的語法例子

C#3.0 LINQ查詢語法

首先,我們來看壹個非常簡單的LINQ查詢的例子,在這個例子中,壹個int數組中的數字小於5,並且按照大小的順序排列:

靜態void Main(string[] args)

{

int[] arr = new int[] { 8,5,89,41,1,2,3,65,1 };

var m = from n in arr其中n & lt5 orderby n降序選擇n;//小於5,以閃回排列顯示。

foreach(變量n以m為單位)

{

控制臺。寫線(n);

}

控制臺。ReadLine();

}

以上代碼都是大家熟悉的語法,除了LINQ查詢語法,LINQ查詢語法和SQL查詢語法非常相似,除了序列。

問:為什麽LINQ查詢語法以from關鍵字而不是select關鍵字開始?select開頭的寫法比SQL更接近,更容易理解。

答:簡單來說,對於IDE的Intel感知的功能,select關鍵字放在後面。

編程語言在select開頭編寫LINQ查詢語法的情況並不少見。如果妳用的是2005年的VB9 CTP版本,那麽VB9的LINQ查詢語法是select關鍵字在前,但是select關鍵字在前面,做Intelisence的時候很大。微軟IDE組平衡後,確定把from關鍵字放在前面。

當時VB9 LINQ的查詢語法還是前面的select參數。但是後來VB9的beta版也改成了和C#壹樣的方式,from關鍵字放在了前面。

更詳細的解釋來自組裝頭部。

假設妳要寫這樣壹個代碼:在persons where XXX中從p中選擇p.name,p.age,代碼壹個壹個輸入。

在我們在persons中寫P之前,P的類型是無法推測的,所以在我們寫Select P的時候,名字等屬性是不會彈出智能提示的。

這樣,妳需要先寫From,然後再回來寫Select。

微軟IDE組反復考慮後決定,以後再寫Select比較好。所以編程語言中的寫法確定是這樣寫的。

VB9中的這壹變化可以在這個博客中找到:

Select/From與From/Select重訪...

讓我們看壹個稍微復雜壹點的LINQ查詢:

在我們列出的語言字符串中,我們希望按照字符的長度分類列出,實現代碼如下:

靜態void Main(string[] args)

{

string[]語言= { Java,C#,C++,Delphi,VB.net,VC.net,C++Builder,Kylix,Perl,Python };

var query =來自語言中的項目

逐項分組。長度分成長度組

orderby長度組。鑰匙

選擇長度組;

foreach(查詢中的變量項)

{

控制臺。WriteLine(長度為{0}的字符串,項。關鍵);

foreach(項目中的變量值)

{

控制臺。寫線(val);

}

}

控制臺。ReadLine();

}

into關鍵字意味著將前壹個查詢的結果作為後續查詢的生成器,與group by壹起使用。

不要把LINQ的Group by和SQL的Group by混為壹談,因為SQL是二維結構,Group by的壹些邏輯受到二維結構的約束,所以不能像LINQ的Group by那樣靈活。

事實上,LINQ的查詢語法有以下兩種形式:

查詢方法:(方法語法)

本文主要使用系統中定義的擴展方法和Lambda表達式。要查詢的可枚舉類。

查詢語句模式:(查詢語法)更接近SQL語法的查詢模式,可讀性更強。