如何从10到20提取记录

本文关键字:提取 记录 | 更新日期: 2023-09-27 18:03:28

我有这个LINQ查询:

IEnumerable<Pack> pack = from Pack myPack in Packs
                         select myPack;

返回(例如)34条记录。我只需要选择从10到20的记录。我该怎么做呢?

如何从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;