分享一个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)
上一篇 2021年12月20日 下午1:00
下一篇 2021年12月20日 下午1:00


相关推荐

  • python isinstance 函数_python isinstance函数

    python isinstance 函数_python isinstance函数isinstance 是 Python 的一个内建函数语法 isinstance object classinfo 如果参数 object 是 classinfo 的实例 或者 object 是 classinfo 类的子类的一个实例 返回 True 如果 object 不是一个给定类型的对象 则返回结果是 False 如果 classinfo 不表示一个类 类型对象 那么它要么是一个类的元组 或者递归地包含这样的 由数据类型构成

    2026年3月16日
    2
  • 嵌入式系统基础知识——之嵌入式微处理器体系结构(1.2)「建议收藏」

    嵌入式系统基础知识——之嵌入式微处理器体系结构(1.2)「建议收藏」1.2嵌入式微处理器体系结构1.2.1 冯诺依曼与哈弗结构1、冯诺依曼结构也称为普林斯顿结构,即程序将指令存储器和数据存储器合并在一起的存储结构,程序与数据公用1个存储空间,只是程序指令存储地址与数据存储地址指向同一存储器的不同物理地址;采用单一的地址及数据总线,程序指令与数据的宽度相同,在告诉运算时,传输通道上存在着瓶颈效应。主要包括:英特尔的8086,ARM7、MIPS等微

    2026年4月17日
    4
  • 服务器bios界面usb无线网卡,BIOS怎么开启无线网卡

    服务器bios界面usb无线网卡,BIOS怎么开启无线网卡

    2021年8月16日
    66
  • MySQL的简单查询语句「建议收藏」

    MySQL的简单查询语句「建议收藏」查询:一:查询所有数据select * from Info 查所有数据select Code,Name from Info 查特定列二:根据条件查select * from Info where Code=’p001′ 一个条件查询select * from Info where Code=’p001′ and Nation=’n001′ 多条件 并关系 查询select * from Info …

    2022年6月13日
    59
  • Python批量修改文件名,文件再多也只要一秒,省时又不闹心

    Python批量修改文件名,文件再多也只要一秒,省时又不闹心前言嗨喽!大家好,这里是魔王对于电脑中的文件夹啊,我们那是新建一个又一个啊,有时候,我们整理资料的时候就会发现,文件夹那是一个杂乱无章,一个一个的去修改太浪费时间,咋今天就来分享一个小技巧:批量修改文件名一、在原有的名字前中后批量加字随意一点,这是我刚刚新建的文件夹和我存放的路径。我们来看看代码,我都详细注释了。importos#导入模块filename=’C:\\Users\\Administrator\\Desktop\\123’#文件地址list_path=os.l

    2025年7月10日
    3
  • http://extasp.net/ 浴火重生

    http://extasp.net/ 浴火重生

    2021年8月1日
    61

发表回复

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

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