簡體   English   中英

Linq跳過問題

[英]problems with Linq skip take

我有這個代碼。

        var documents = from d in db.Documents select d;
        documents = documents.OrderBy(d => d.Created);
        documents = documents.Skip(20).Take(10);

在數據庫中,我有25個文檔(標識從1到25)。 當我運行此代碼時,我會得到ID為19到24的文檔。

如果我這樣寫

    documents = documents.Skip(20);

或像這樣

documents = documents.Skip(20).ToList().Take(10).AsQueryable();

我收到的文件從20到25。

我在這里想念什么?

您的數據不是您的想法。 問題是id=25created日期不正確。

您要先按created順序對序列進行排序,那么為什么還要期望對輸出按id進行排序(或基於其進行選擇)?

首先執行“ Skip ,然后第二次“ OrderBy更改輸出,因為它最初可能是由Id排序的,然后您選擇了序列中的最后幾個,然后再次按日期對其進行了排序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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