[英]LINQ with Skip and Take
我使用下面的代碼從IEnumerable
獲取一些項目,但它始終將源返回為null並計為0並且實際上IEnumerable
存在項目
private void GetItemsPrice(IEnumerable<Item> items, int customerNumber)
{
var a = items.Skip(2).Take(5);
}
當我試圖訪問a
已計數0
。 這里出了什么問題?
請記住,代碼中的變量a
本身就是一個查詢 。 它不是查詢執行的結果 。 當您使用立即窗口來查看查詢時(實際上與延遲執行的查詢有關,否則您將有結果而不是查詢),它將始終顯示
{System.Linq.Enumerable.TakeIterator<int>}
count: 0
source: null
您可以使用此代碼驗證,顯然有足夠的項目:
int[] items = { 1, 2, 3, 4, 5, 6, 7 };
var a = items.Skip(2).Take(3);
因此,您應該執行查詢以查看查詢執行的結果 。 寫入立即窗口:
a.ToList()
您將看到查詢執行的結果:
Count = 3
[0]: 3
[1]: 4
[2]: 5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.