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
        }
    }
    屌丝一直很屌
  • 相关阅读:
    LeetCode OJ-- LRU Cache ***@
    LeetCode OJ-- Maximal Rectangle ***@
    LeetCode OJ-- Maximum Subarray @
    LeetCode OJ--Merge Intervals @
    导出你的GAC Assembly中的DLLS -- 金大昊(jindahao)
    Unity3d学习日记(六)
    如何不冲会员高速下载百度网盘上的资源
    3dContactPointAnnotationTool开发日志(三四)
    3dContactPointAnnotationTool开发日志(三三)
    3dContactPointAnnotationTool开发日志(三二)
  • 原文地址:https://www.cnblogs.com/xiashenbin/p/3167000.html
Copyright © 2011-2022 走看看