分享一个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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 举例说明随机函数的应用python_Python生成50个随机数

    举例说明随机函数的应用python_Python生成50个随机数摘要:下文讲述Python代码中seed()函数的简介说明,如下所示:seed()函数功能用于改变随机数生成器的种子,常用于其它随机函数之前运行此函数seed()函数语法seed.seed([x])———参数说明—-x:任意数字———返回值说明—-无返回值seed()函数注意事项:1.使用seed()函数需引入包random(importrandom)2.设置随…

    2022年11月1日
  • 一致性哈希算法详解

    一致性哈希算法详解1、使用哈希算法有什么问题?假设有一个由A、B、C三个节点组成的KV服务,每个节点存放不同的KV数据。通过哈希算法,每个key都可以寻址到对应的服务器,比如,查询key是key-01,计算公式为hash(key-01)%3,经过计算寻址到了编号为1的服务器节点A但如果服务器数量发生变化,基于新的服务器数量来执行哈希算法的时候,就会出现路由寻址失败的情况,Proxy无法找到之前寻址到的那个服务器节点假如3个节点不能满足业务需求了,这时增加了一个节点,节点的数量从3变化为4,那么之前的hash(key

    2022年7月27日
  • 如何让phpmyadmin输入密码再进入

    如何让phpmyadmin输入密码再进入

    2021年9月19日
  • 一文读懂自监督学习

    一文读懂自监督学习公众号关注“视学算法”设为“星标”,DLCV消息即可送达!来自|知乎作者丨Sherlock来源丨https://zhuanlan.zhihu.c…

    2022年9月14日
  • 文献导入endnote的几种方法(导入参考文献)

    对于科研学子来说,EndNote(或NoteExpress)是管理文献的利器,能够快速筛选文献与录入参考文献,非常适用于参考文献较多的场合。首先Endnote的安装这里就不赘述,直接附上安装包链接以及汉化补丁:链接:https://pan.baidu.com/s/1xGBWaXqFDsKuws-HGhrtfw提取码:33v4接下来就讲讲我们的正题:…

    2022年4月17日

发表回复

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

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