如何从10到20提取记录
本文关键字:提取 记录 | 更新日期: 2023-09-27 18:03:28
我有这个LINQ查询:
IEnumerable<Pack> pack = from Pack myPack in Packs
select myPack;
返回(例如)34条记录。我只需要选择从10到20的记录。我该怎么做呢?
使用Skip()
和Take()
的组合:
pack.Skip(10).Take(10);
或者,如果你想要一个单独的语句:
// if you want records 11 - 20 which would be the second set of 10
var packs = Packs.Skip(10).Take(10);
// or if you want records 10 - 20 which would be a set of 11
var packs = Packs.Skip(9).Take(11);
以下内容如何?其思想是将行号投影到每个记录上。这样你就可以在where
子句中使用它。
var pack =
from x in Packs.Select((item, index) => new { RowNum = index + 1, Item = item })
where x.RowNum >= 10 && x.RowNum <= 20
select x.Item;