You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

列表分页加载异常咨询:第20页无法获取目标数据

问题分析与解决方案

嘿,这个分页问题我碰到过好多次了——你的代码确实存在逻辑漏洞,导致最后一页拿不到数据!

问题根源

你当前的分页计算是用 page * pageSize 来确定要跳过的记录数,但显然你的page参数是从1开始计数的(比如第20页是最后一页)。当page=20、pageSize=5时:

page * pageSize = 20 * 5 = 100

这意味着你直接跳过了全部100条记录,Take(5)自然拿不到任何数据。

修正后的代码

我们需要把跳过的记录数改成 (page - 1) * pageSize,这样第一页跳过0条,第20页跳过19*5=95条,刚好能拿到最后5条数据。另外建议加上参数校验,避免非法输入:

IList<portable.ActionReturnResult> GetPage(IList<portable.ActionReturnResult> list, int page, int pageSize) 
{
    // 处理非法参数,避免出现负数跳过或无效页大小
    if (page < 1) page = 1;
    if (pageSize < 1) pageSize = 5; // 可根据需求设置默认页大小
    
    int skipCount = (page - 1) * pageSize;
    return list.Skip(skipCount).Take(pageSize).ToList();
}

调用的时候注意,方法已经返回ToList()了,不需要重复调用:

IList<portable.ActionReturnResult> Pageload = GetPage(appBase.Results, currentpage, pageSize);

额外说明

如果你的分页逻辑原本打算让page从0开始计数(比如第0页是第一页),那原来的代码是没问题的,但显然你的场景里page是从1开始的,所以必须做这个调整。

内容的提问来源于stack exchange,提问作者A M N Kumari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:04:02