關於LINQ(Language-integrated Query (LINQ))是.NET 3.5和Visual Studio 2008以上版本中引入的一種有趣的全新概念,語言版本有VB和C#,由於C#與.NET平台結合最為緊密,也是MS當初首推的語言,因此,本系列文章的範例程式碼都使用C#。 MSDN上資料非常詳細和完備,所以,我也不打算講得過於詳盡,再說,網上也有不少博文都闡述過LINQ,如果我還炒冷飯,就有抄襲之嫌。其實,很多時候我們不必要到處去搜,到處去問人,MSDN上的參考文檔已經很優秀了,而且還有多語言版本,也請了牛B人物進行人工翻譯,所以說啊,咱們.NET開發人員是非常幸運的,一來有VS這個世界級領先的開發工具(目前不好的一點是效能,據說微軟正在努力解決),微軟一直都希望其產品福士化,市場化,我們也看到了這個大巨頭在努力完善;二來,擁有MSDN這麼神奇的參考文檔。我們完全有理由相信,真的是幸運的,Jdk沒有這麼詳細完備的文檔,更別說中文版;PHP也沒有如此強勁的參考文檔,難道,我們不應該認為,使用.NET是最輕鬆的嗎? 噢,廢話說得多了一點,還是不說了,迴歸正題。好的,開門見山,先說說LINQ有些啥好處,相信很多人都會先問這個問題。SQL語句我想各位不會陌生了,在企業級應用項目中,我們是無法避免與資料庫打交道,同時也說明,我們避不開要寫SQL語句,這樣一來,你又要抽出N多時間去學習SQL的文法和相關知識,或者,你們團隊會找人專門搞資料庫,或者你一個人擔起這個艱巨的任務。XQurey和XPath聽過了吧,我想,很多人都用過,就算不用你也肯定聽過的,除非你是當年參加抗日戰爭的老兵。好了,這時候又說要用XML查詢了,你又要抱著一本厚厚的書去學習XML查詢,你累不累? 有了LINQ就不一樣了,敏捷開發自然需要一些新玩意兒來提高效率,這時候,你就爽歪歪了,改革開放的春風吹遍大江南北,LINQ的暖流也可以讓我們把編程變成一種享受而不是體力活。 要幹好LINQ就得從文法開始,其實和SQL很像,後面你會發現的,總體的文法規則可以歸為下面兩句話:1、以from打頭;2、以select子句或group子句結尾。 是不是這樣呢?少吹牛,一起來動手實踐一下。啟動VS,建立一個項目,項目類型你喜歡。要操作資料,自然少不了資料來源,當然這裡簡單的樣本,就沒必要用資料庫了。輕鬆一點,我們來一個簡單的整型數組。
int[] mySource = new int[] { 20, 35, 15, 16, 72, 64, 58, 73, 99, 48 };
現在,我們把大於等於50的整數篩選出來。
IEnumerable<int> result = from n in mySource where n >= 50 select n; Console.WriteLine(">= 50 的數字如下:"); foreach (int i in result) { Console.Write("\t{0}", i); }
運行一下,我們可以看到結果如下:
好了,LINQ的基本文法就說到這裡,更複雜的文法,會在後面系列文章中聊。