使用 Linq 处理数据分页

最近手头上一个项目需要服务端能够进行分页返回数据。

需求:

客户端传入两个分页参数:pageSize 和 pageNumber,服务端需要返回所要求的数据 (如:有20条结果数据,pageSize=5,pageNumber=2 则需要返回第6~10条数据)。

使用 Linq:

// 需要排序的话只要再使用 orderby 即可

var skipRecords = pageSize * (pageNumber - 1);
var result = data.Skip(skipRecords).Take(pageSize);

 

使用 List 的 GetRange():

int startIndex = pageSize * (pageNumber - 1);

// 此行是为了防止 OutOfRange 
int offIndex = (startIndex + pageSize) > data.Count ? (data.Count - startIndex) : pageSize;

var result = data.GetRange(startIndex, offIndex);

 

使用 Linq 的话就不需要考虑越界问题了。

 

 

转载于:https://www.cnblogs.com/kuacci/p/3222421.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值