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

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值