掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流
LINQ有很多值得學習的地方,這里我們主要介紹使用LINQ Where擴展方法,包括介紹書寫帶Where子句的LINQ等方面。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設,下花園企業(yè)網(wǎng)站建設,下花園品牌網(wǎng)站建設,網(wǎng)站定制,下花園網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,下花園網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
我們除了可以如下方式書寫帶Where子句的LINQ外:
- from p in products where p.UnitsInStock > 0 && p.UnitPrice > 3.00M select p;
還可以對數(shù)組(所有實現(xiàn)了IEnumerable接口的對象都可以)的使用LINQ here擴展方法。
把一個查詢語句寫成多個擴展函數(shù)的方式,這其實是編譯器處理查詢語句的方法,比如下面的查詢語句:
- int[] arr = new int[] { 8, 5, 89, 3, 56, 4, 1, 58 };
- var m = from n in arr where n < 5 orderby n select n;
編譯器在編譯后,替我們產(chǎn)生的代碼等價于如下的代碼:
- IOrderedSequence m = arr.Where(delegate (int n) {
- return (n < 5);
- }).OrderBy(delegate (int n) {
- return n;
- });
下面我們來看一個使用LINQ here擴展方法的例子:
我們有一個字符串數(shù)組,一次是0到9的英文單詞,我們查詢出這10個字符的長度比它所在數(shù)組的位置 這兩個數(shù)字比較小的英文單詞.
這個查詢可能有些繞口,你可以先看下面這些代碼:
- public static void LinqDemo01()
- {
- string[] digits = { "zero", "one", "two", "three", "four",
"five", "six", "seven", "eight", "nine" };- var shortDigits = digits.Where((dd, aa) => dd.Length < aa);
- Console.WriteLine("Short digits:");
- foreach (var d in shortDigits)
- Console.WriteLine("The word {0} is shorter than its value.", d);
- }
輸出結果:
- Short digits:
- The word five is shorter than its value.
- The word six is shorter than its value.
- The word seven is shorter than its value.
- The word eight is shorter than its value.
- The word nine is shorter than its value.
【編輯推薦】

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流