c#linq里的Skip和Take处理分页笔记

本文介绍了C# Linq中用于分页的Skip和Take运算符。Take()用于获取序列中指定数量的元素,而Skip()则用于跳过指定数量的元素。正确使用顺序应为source.Skip().Take(),以避免数据混乱。先转换为List()再进行Skip().Take()可以确保有序结果集。理解这两个函数的工作原理对于防止分页错误至关重要。
摘要由CSDN通过智能技术生成

Take()
Take 运算子是扩充自 IEnumerable 的方法,只需传入一个 int 型別的参数,表示要取回的项目个数。当 Take 运算子被调用时,会从来源序列的第一個项目开始,依序取回指定数量的项目当做结果回传。
Skip()
Skip 运算子和 Take 运算子正好相反,它可用来跳过来源序列中的前几个项目,再把剩下的资料全部回传。
用法
这两个函数可以直接在c#中用来做分页处理。但是两个函数的顺序不能反。不然容易引发数据混乱的问题。最好是先用source.Skip().Take()。也可以先将source.ToList(),然后进行Skip().Take()。因为先List()的话,会执行sql查询返回有序的结果集。这样查询变不会出错。

sql关键字执行顺序
http://blog.csdn.net/cqnuztq/article/details/8683656

这两个函数对应的查询
source.Take().Skip()对应的sql:

    select *,row_number() OVER(order 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值