gpt4 book ai didi

c# - 使用 LINQ 对对象进行分页

转载 作者:IT王子 更新时间:2023-10-29 03:38:50 27 4
gpt4 key购买 nike

您将如何在 LINQ 查询中实现分页?其实暂时,能模仿sql的TOP函数我就满足了。但是,我确信对完整分页支持的需求无论如何都会很快出现。

var queryResult = from o in objects
where ...
select new
{
A = o.a,
B = o.b
}
????????? TOP 10????????

最佳答案

您正在寻找 SkipTake 扩展方法。 Skip 跳过结果中的前 N ​​个元素,返回余数; Take 返回结果中的前 N ​​个元素,丢弃所有剩余元素。

有关如何使用这些方法的更多信息,请参阅 MSDN:http://msdn.microsoft.com/en-us/library/bb386988.aspx

假设您已经考虑到 pageNumber 应该从 0 开始(按照评论中的建议每减少 1)您可以这样做:

int numberOfObjectsPerPage = 10;
var queryResultPage = queryResult
.Skip(numberOfObjectsPerPage * pageNumber)
.Take(numberOfObjectsPerPage);

否则,如果 pageNumber 是基于 1 的(如@Alvin 所建议的)

int numberOfObjectsPerPage = 10;
var queryResultPage = queryResult
.Skip(numberOfObjectsPerPage * (pageNumber - 1))
.Take(numberOfObjectsPerPage);

关于c# - 使用 LINQ 对对象进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2380413/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com