Count() 计算总页数
使用 math.ceiling 结合 count() 可以准确计算总页数。对于空集合,直接返回 0 避免除零异常。
using System;
using System.Linq;
var items = new[] { "A", "B", "C" };
int pageSize = 2;
int totalCount = items.Count();
int totalPages = totalCount == 0 ? 0 : (int)Math.Ceiling((double)totalCount / pageSize);
Console.WriteLine(totalPages); // 输出: 2预期结果:3个元素每页2个,总页数为2。
Take() 处理不足一页的数据
使用 Skip() 和 Take() 组合进行分页,不足一页时自动截断,不会报错。
using System;
using System.Linq;
var items = new[] { "A", "B", "C" };
int pageSize = 2;
int pageNumber = 2; // 第2页
var pageItems = items.Skip((pageNumber - 1) * pageSize).Take(pageSize);
foreach (var item in pageItems)
{
Console.WriteLine(item); // 输出: C
}预期结果:第2页只有1个元素“C”,Take(2) 只返回存在的部分。
基于输入条件判断是否最后一页
通过比较当前页实际获取的元素数量与页面大小,可以判断是否为最后一页。
using System;
using System.Linq;
var items = new[] { "A", "B", "C" };
int pageSize = 2;
int pageNumber = 2;
var pageItems = items.Skip((pageNumber - 1) * pageSize).Take(pageSize).ToList();
bool isLastPage = pageItems.Count < pageSize;
Console.WriteLine(isLastPage); // 输出: True预期结果:第2页只有1个元素,小于页面大小2,因此是最后一页。


















