您好,登錄后才能下訂單哦!
這篇文章給大家介紹Linq中如何使用foreach語句,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
Linq 有很多值得學習的地方,這里我們主要介紹Linq foreach語句,包括介紹foreach循環來強制執行查詢等方面。
實際的查詢執行會延遲到在Linq foreach語句中循環訪問查詢變量時發生。此概念稱為“延遲執行”,下面的示例對此進行了演示:
//Query execution. foreach (int num in numQuery) { Console.Write("{0,1} ", num); }
Linq foreach語句也是檢索查詢結果的地方。例如,在上一個查詢中,迭代變量 num 保存了返回的序列中的每個值(一次保存一個值)。
由于查詢變量本身從不保存查詢結果,因此可以根據需要隨意執行查詢。例如,可以通過一個單獨的應用程序持續更新數據庫。在應用程序中,可以創建一個檢索***數據的查詢,并可以按某一時間間隔反復執行該查詢以便每次檢索不同的結果。
對一系列源元素執行聚合函數的查詢必須首先循環訪問這些元素。Count、Max、Average 和 First 就屬于此類查詢。由于查詢本身必須使用 foreach 以便返回結果,因此這些查詢在執行時不使用顯式Linq foreach語句。另外還要注意,這些類型的查詢返回單個值,而不是 IEnumerable 集合。下面的查詢返回源數組中偶數的計數:
var evenNumQuery = from num in numbers where (num % 2) == 0 select num; int evenNumCount = evenNumQuery.Count();
若要強制立即執行任意查詢并緩存其結果,可以調用 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();
此外,還可以通過在緊跟查詢表達式之后的位置放置一個 foreach 循環來強制執行查詢。但是,通過調用 ToList 或 ToArray,也可以將所有數據緩存在單個集合對象中。
關于Linq中如何使用foreach語句就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。