溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

LINQ中如何使用Where擴(kuò)展

發(fā)布時(shí)間:2021-08-11 15:37:56 來(lái)源:億速云 閱讀:185 作者:Leah 欄目:編程語(yǔ)言

本篇文章為大家展示了LINQ中如何使用Where擴(kuò)展,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

我們除了可以如下方式書(shū)寫(xiě)帶Where子句的LINQ外:

from p in products where p.UnitsInStock > 0 && p.UnitPrice > 3.00M select p;

還可以對(duì)數(shù)組(所有實(shí)現(xiàn)了IEnumerable接口的對(duì)象都可以)的使用LINQ here擴(kuò)展方法。

把一個(gè)查詢(xún)語(yǔ)句寫(xiě)成多個(gè)擴(kuò)展函數(shù)的方式,這其實(shí)是編譯器處理查詢(xún)語(yǔ)句的方法,比如下面的查詢(xún)語(yǔ)句:

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)生的代碼等價(jià)于如下的代碼:

IOrderedSequence m = arr.Where(delegate (int n) {  return (n < 5);  }).OrderBy(delegate (int n) {  return n;  });

下面我們來(lái)看一個(gè)使用LINQ here擴(kuò)展方法的例子:

我們有一個(gè)字符串?dāng)?shù)組,一次是0到9的英文單詞,我們查詢(xún)出這10個(gè)字符的長(zhǎng)度比它所在數(shù)組的位置 這兩個(gè)數(shù)字比較小的英文單詞.

這個(gè)查詢(xún)可能有些繞口,你可以先看下面這些代碼:

  1. public static void LinqDemo01()  

  2. {  

  3. string[] digits = { "zero", "one", "two", "three", "four", 
    "five", "six", "seven", "eight", "nine" };  

  4. var shortDigits = digits.Where((dd, aa) => dd.Length < aa);  

  5. Console.WriteLine("Short digits:");  

  6. foreach (var d in shortDigits)  

  7. Console.WriteLine("The word {0} is shorter than its value.", d);  

  8. }  

輸出結(jié)果:

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.

上述內(nèi)容就是LINQ中如何使用Where擴(kuò)展,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI