zoukankan      html  css  js  c++  java
  • C#分页类

    using System.Linq;
    using System.Collections.Generic;
    
    namespace CommonLibrary
    {
        public class PagedList<T> : List<T>
        {
            #region Properties
    
            public int PageIndex { get; private set; }
    
            public int PageSize { get; private set; }
    
            public int TotalCount { get; private set; }
    
            public int TotalPages { get; private set; }
    
            public bool HasPreviousPage
            {
                get { return (PageIndex > 0); }
            }
            public bool HasNextPage
            {
                get { return (PageIndex + 1 < TotalPages); }
            }
    
            #endregion
    
            #region Constructors
    
            public PagedList(IQueryable<T> source, int pageIndex, int pageSize)
            {
                if (source == null || source.Count() < 1)
                    throw new System.ArgumentNullException("source");
    
                int total = source.Count();
                this.TotalCount = total;
                this.TotalPages = total / pageSize;
    
                if (total % pageSize > 0)
                    TotalPages++;
    
                this.PageSize = pageSize;
                this.PageIndex = pageIndex;
                this.AddRange(source.Skip(pageIndex * pageSize).Take(pageSize).ToList());
            }
    
            public PagedList(IList<T> source, int pageIndex, int pageSize)
            {
                if (source == null || source.Count() < 1)
                    throw new System.ArgumentNullException("source");
    
                TotalCount = source.Count();
                TotalPages = TotalCount / pageSize;
    
                if (TotalCount % pageSize > 0)
                    TotalPages++;
    
                this.PageSize = pageSize;
                this.PageIndex = pageIndex;
                this.AddRange(source.Skip(pageIndex * pageSize).Take(pageSize).ToList());
            }
    
            public PagedList(IEnumerable<T> source, int pageIndex, int pageSize, int totalCount)
            {
                if (source == null || source.Count() < 1)
                    throw new System.ArgumentNullException("source");
    
                TotalCount = totalCount;
                TotalPages = TotalCount / pageSize;
    
                if (TotalCount % pageSize > 0)
                    TotalPages++;
    
                this.PageSize = pageSize;
                this.PageIndex = pageIndex;
                this.AddRange(source);
            }
    
            #endregion
        }
    }
    屌丝一直很屌
  • 相关阅读:
    文件系统类型
    Linux VFS分析(二)
    VFS(Virtual File System)
    shell语言
    linux VFS 之一 :虚拟文件系统的面向对象设计思想
    分层利器 facade
    微内核与面向组件
    从操作系统内核看设计模式--linux内核的facade模式
    软件架构模式
    联系的度量
  • 原文地址:https://www.cnblogs.com/xiashenbin/p/3167000.html
Copyright © 2011-2022 走看看