为什么LINQ不让我订购我的一个数据点?

B. *_*non 1 c# linq asp.net-mvc asp.net-web-api

我有这个代码:

return inventoryItems
    .Where(i => 0 < String.Compare(i.ID, ID))
    .Take(CountToFetch);
Run Code Online (Sandbox Code Playgroud)

...但我想订购结果,如下:

return inventoryItems
    .Where(i => 0 < String.Compare(i.ID, ID))
    .Take(CountToFetch)
    .OrderBy(i.pksize);
Run Code Online (Sandbox Code Playgroud)

...但是,决赛i是红色/超出范围.为什么?尝试将OrderBy()之前的位置定位Take()没有区别.

Mar*_*zek 6

return inventoryItems.Where(i => 0 < String.Compare(i.ID, ID))
                     .Take(CountToFetch)
                     .OrderBy(i => i.pksize);
Run Code Online (Sandbox Code Playgroud)

也许你应该改变OrderByTake命令使结果可预测:

return inventoryItems.Where(i => 0 < String.Compare(i.ID, ID))
                     .OrderBy(i => i.pksize)
                     .Take(CountToFetch);
Run Code Online (Sandbox Code Playgroud)