有没有办法创建 linq to sql 查询以按 Take 参数进行分组?
例如,如果我有一个包含 20 条记录且唯一 ID 值从 1 到 20 的表,我希望获得一组由 5 条记录分组的记录:
Group 1: 1,2,3,4,5
Group 2: 6,7,8,9,10
....
我可以想到两种方法来做到这一点
通过进行 5 次查询: 第一个查询计算总记录数,接下来的 4 个查询将是选择查询,其中我跳过 5 个并取 5 个。
通过进行一次查询,使用内部索引循环结果并创建包含 5 组的对象
有没有更优雅的方法来使用 linq to sql 来做到这一点?
最佳答案
你的第二个想法正是我会做的。只需从数据库获取所有内容并在 .NET 端循环即可。可能有一些方法可以使用 Aggregate 以更像 LINQ 的方式来完成此操作,但我确信它们会更难阅读。如果您以惰性方式执行此操作(使用yield 来实现枚举器),您仍然只会循环序列一次,因此不会损失性能。
关于c# - Linq to sql 按多条记录进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8153799/