当前位置:  开发笔记 > 后端 > 正文

如何使用Linq分页泛型集合?

如何解决《如何使用Linq分页泛型集合?》经验,为你挑选了2个好方法。

我有一个System.Generic.Collections.List(Of MyCustomClass)类型对象.

给定整数变量pagesize和pagenumber,如何只查询MyCustomClass对象的任何单页?



1> Espo..:

如果您的linq查询包含要显示的所有行,则可以使用以下代码:

var pageNum = 3;
var pageSize = 20;
query = query.Skip((pageNum - 1) * pageSize).Take(pageSize);

您还可以在对象上创建一个能够编写的扩展方法

query.Page(2,50)

获取第2页的前50条记录.如果您想要,则信息在固体代码博客上.



2> CraftyFella..:

嗨有一个叫做PagedList的邪恶的东西是我在观看Rob Conery Screen Cast时得到的.

http://blog.wekeroad.com/2007/12/10/aspnet-mvc-pagedlistt/

它内置了所有Skip和Take内容.

你所做的只是打电话

var query = from item in DB.Table
where item.Field == 1
orderby item.Field2
select item;

PagedList pagedList = query.ToPagedList(pageIndex, pageSize);

希望它有所帮助..我现在正在使用它,它适用于linq到实体.使用Linq to实体,您必须先执行Orderby才能使用Skip and Take.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有