分享一个C#的分页类建议收藏

废话不说只有代码:1usingSystem.Linq;2usingSystem.Collections.Generic;34namespaceCommonLibrary5{6

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

废话不说只有代码:

 1 using System.Linq;
 2 using System.Collections.Generic;
 3 
 4 namespace CommonLibrary
 5 {
 6     public class PagedList<T> : List<T>
 7     {
 8         #region Properties
 9 
10         public int PageIndex { get; private set; }
11 
12         public int PageSize { get; private set; }
13 
14         public int TotalCount { get; private set; }
15 
16         public int TotalPages { get; private set; }
17 
18         public bool HasPreviousPage
19         {
20             get { return (PageIndex > 0); }
21         }
22         public bool HasNextPage
23         {
24             get { return (PageIndex + 1 < TotalPages); }
25         }
26 
27         #endregion
28        //http://www.cnblogs.com/roucheng/
29         #region Constructors
30 
31         public PagedList(IQueryable<T> source, int pageIndex, int pageSize)
32         {
33             if (source == null || source.Count() < 1)
34                 throw new System.ArgumentNullException("source");
35 
36             int total = source.Count();
37             this.TotalCount = total;
38             this.TotalPages = total / pageSize;
39 
40             if (total % pageSize > 0)
41                 TotalPages++;
42 
43             this.PageSize = pageSize;
44             this.PageIndex = pageIndex;
45             this.AddRange(source.Skip(pageIndex * pageSize).Take(pageSize).ToList());
46         }
47 
48         public PagedList(IList<T> source, int pageIndex, int pageSize)
49         {
50             if (source == null || source.Count() < 1)
51                 throw new System.ArgumentNullException("source");
52 
53             TotalCount = source.Count();
54             TotalPages = TotalCount / pageSize;
55 
56             if (TotalCount % pageSize > 0)
57                 TotalPages++;
58 
59             this.PageSize = pageSize;
60             this.PageIndex = pageIndex;
61             this.AddRange(source.Skip(pageIndex * pageSize).Take(pageSize).ToList());
62         }
63 
64         public PagedList(IEnumerable<T> source, int pageIndex, int pageSize, int totalCount)
65         {
66             if (source == null || source.Count() < 1)
67                 throw new System.ArgumentNullException("source");
68 
69             TotalCount = totalCount;
70             TotalPages = TotalCount / pageSize;
71 
72             if (TotalCount % pageSize > 0)
73                 TotalPages++;
74 
75             this.PageSize = pageSize;
76             this.PageIndex = pageIndex;
77             this.AddRange(source);
78         }
79 
80         #endregion
81     }
82 }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120768.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux设置文件权限777_linux目录详解

    linux设置文件权限777_linux目录详解Linux、Fedora、Ubuntu修改文件、文件夹权限的方法差不多。很多人开始接触Linux时都很头痛Linux的文件权限问题。这里告诉大家如何修改Linux文件-文件夹权限。以主文件夹下的一个名为“cc”的文件夹为例。下面一步一步介绍如何修改权限:1.打开终端。输入”su”(没有引号)2.接下来会要你输入密码,输入你的root密码。3.假设我的文件夹在主目录里,地址为/var/home/d…

    2025年10月25日
    3
  • pyqt5开发的漂亮界面_pyqt5美化包

    pyqt5开发的漂亮界面_pyqt5美化包今天闲来无事,用python写了一个抽奖程序pyqt版本:pyqt5python版本:3.6.6下面直接上代码,有建议的话,欢迎大家交流评论!#-*-coding:utf-8-*-#Formimplementationgeneratedfromreadinguifile’Lucky_draw.ui’##Createdby:PyQt5UIcodegenerator5.15.1##WARNING:Anymanualchangesmadeto

    2022年8月31日
    3
  • Nginx编译配置脚本篇(10)- Makefile相关脚本[通俗易懂]

    Nginx编译配置脚本篇(10)- Makefile相关脚本[通俗易懂]Nginx编译配置脚本篇(10)-Makefile相关脚本1、相关文章2、前言3、auto/make脚本文件详解3.1、输出调试信息表示创建objs/Makefile文件3.2、创建存放目标文件的目录3.3、设置ngx_objs_dir和ngx_use_pch3.4、输出编译参数相关信息到objs/Makefile文件中3.5、根据NGX_PERL_CFLAGS输出信息到objs/Makefile文件中3.6、输出ALL_INCS变量到objs/Makefile文件中3.7、输出CORE_DEPS和COR

    2022年6月4日
    45
  • set max_containsvalue方法

    set max_containsvalue方法•setMaxResults是用来配合数据库生成sql的,在sql里就控制查询的记录数目。  o=query.setMaxResults(1).uniqueResult(); uniqueResult();hibernate的参考手册,query接口提供了一个更好的方法用来获取实例,当返回的实例明确只有一个或者为null的时候。这个方法是这样用的当你能够肯定你…

    2025年10月19日
    2
  • Android Studio实现简单的记事本「建议收藏」

    Android Studio实现简单的记事本「建议收藏」手把手教你搭建一个记事本项目,简单又好用,经典之作。

    2025年6月30日
    2
  • java的集合和数组_Java集合和数组的区别

    java的集合和数组_Java集合和数组的区别Java 集合和数组的区别集合和容器都是 Java 中的容器 区别数组特点 大小固定 只能存储相同数据类型的数据集合特点 大小可动态扩展 可以存储各种类型的数据转换数组转换为集合 Arrays asList 数组 示例 int arr 1 3 4 6 6 Arrays asList arr for inti 0 iSystem out println arr i 集合转换为数组 集

    2025年10月12日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号