溫馨提示×

溫馨提示×

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

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

Linq中如何使用foreach語句

發(fā)布時間:2021-07-19 15:47:34 來源:億速云 閱讀:202 作者:Leah 欄目:編程語言

這篇文章給大家介紹Linq中如何使用foreach語句,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

Linq 有很多值得學(xué)習(xí)的地方,這里我們主要介紹Linq foreach語句,包括介紹foreach循環(huán)來強制執(zhí)行查詢等方面。

實際的查詢執(zhí)行會延遲到在Linq foreach語句中循環(huán)訪問查詢變量時發(fā)生。此概念稱為“延遲執(zhí)行”,下面的示例對此進(jìn)行了演示:

//Query execution.   foreach (int num in numQuery)  {  Console.Write("{0,1} ", num);  }

Linq foreach語句也是檢索查詢結(jié)果的地方。例如,在上一個查詢中,迭代變量 num 保存了返回的序列中的每個值(一次保存一個值)。

由于查詢變量本身從不保存查詢結(jié)果,因此可以根據(jù)需要隨意執(zhí)行查詢。例如,可以通過一個單獨的應(yīng)用程序持續(xù)更新數(shù)據(jù)庫。在應(yīng)用程序中,可以創(chuàng)建一個檢索***數(shù)據(jù)的查詢,并可以按某一時間間隔反復(fù)執(zhí)行該查詢以便每次檢索不同的結(jié)果。

對一系列源元素執(zhí)行聚合函數(shù)的查詢必須首先循環(huán)訪問這些元素。Count、Max、Average 和 First 就屬于此類查詢。由于查詢本身必須使用 foreach 以便返回結(jié)果,因此這些查詢在執(zhí)行時不使用顯式Linq foreach語句。另外還要注意,這些類型的查詢返回單個值,而不是 IEnumerable 集合。下面的查詢返回源數(shù)組中偶數(shù)的計數(shù):

var evenNumQuery =   from num in numbers  where (num % 2) == 0  select num;   int evenNumCount = evenNumQuery.Count();

若要強制立即執(zhí)行任意查詢并緩存其結(jié)果,可以調(diào)用 ToList<(Of <(TSource>)>) 或 ToArray<(Of <(TSource>)>) 方法。

List<int> numQuery2 =  (from num in numbers  where (num % 2) == 0  select num).ToList();   //or like this:  //numQuery3 is still an int[]   var numQuery3 =  (from num in numbers  where (num % 2) == 0  select num).ToArray();

此外,還可以通過在緊跟查詢表達(dá)式之后的位置放置一個 foreach 循環(huán)來強制執(zhí)行查詢。但是,通過調(diào)用 ToList 或 ToArray,也可以將所有數(shù)據(jù)緩存在單個集合對象中。

關(guān)于Linq中如何使用foreach語句就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

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

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

AI