LINQ with Skip and Take

后端 未结 1 621
忘掉有多难
忘掉有多难 2020-12-10 11:25

I used the below code to take some items from IEnumerable, but it is always returning the source as null and count as 0 and actually there are items exists in <

相关标签:
1条回答
  • 2020-12-10 11:57

    Remember, that variable a in your code is a query itself. It is not result of query execution. When you are using Immediate Window to watch query (actually that relates to queries which have deferred execution otherwise you will have results instead of query), it will always show

    {System.Linq.Enumerable.TakeIterator<int>}
        count: 0
        source: null
    

    You can verify that with this code, which obviously has enough items:

    int[] items = { 1, 2, 3, 4, 5, 6, 7 };
    var a = items.Skip(2).Take(3);
    

    So, you should execute your query to see results of query execution. Write in Immediate Window:

    a.ToList()
    

    And you will see results of query execution:

    Count = 3
        [0]: 3
        [1]: 4
        [2]: 5
    
    0 讨论(0)
提交回复
热议问题