簡體   English   中英

LINQ with Skip and Take

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM