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
        }
    }
    屌丝一直很屌
  • 相关阅读:
    广域网(ppp协议、HDLC协议)
    0120. Triangle (M)
    0589. N-ary Tree Preorder Traversal (E)
    0377. Combination Sum IV (M)
    1074. Number of Submatrices That Sum to Target (H)
    1209. Remove All Adjacent Duplicates in String II (M)
    0509. Fibonacci Number (E)
    0086. Partition List (M)
    0667. Beautiful Arrangement II (M)
    1302. Deepest Leaves Sum (M)
  • 原文地址:https://www.cnblogs.com/xiashenbin/p/3167000.html
Copyright © 2011-2022 走看看