/// <summary> /// 进行指定的分页操作。 /// /// 如果分页信息指定了要统计所有的行数,则立刻执行 Count 方法获取所有行数。 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="models">The models.</param> /// <param name="pagingInfo">The paging information.</param> /// <returns></returns> /// <exception cref="System.ArgumentOutOfRangeException">索引不能是负数。</exception> public static IEnumerable <T> JumpToPage <T>(this IEnumerable <T> models, PagingInfo pagingInfo) { //假如这个是空的,就不需要分页 if (PagingInfo.IsNullOrEmpty(pagingInfo)) { return(models); } if (pagingInfo.PageNumber < 1) { throw new ArgumentOutOfRangeException("索引不能是负数。"); } //需要记数 if (pagingInfo.IsNeedCount) { pagingInfo.TotalCount = models.LongCount(); } if (pagingInfo.PageNumber == 1) { return(models.Take(pagingInfo.PageSize)); } return(models .Skip((int)(pagingInfo.PageNumber - 1) * pagingInfo.PageSize) .Take(pagingInfo.PageSize)); }
/// <summary> /// 进行指定的分页操作。 /// /// 如果分页信息指定了要统计所有的行数,则立刻执行 Count 方法获取所有行数。 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="models">The models.</param> /// <param name="pagingInfo">The paging information.</param> /// <returns></returns> /// <exception cref="System.ArgumentOutOfRangeException">索引不能是负数。</exception> public static IQueryable <T> JumpToPage <T>(this IQueryable <T> models, PagingInfo pagingInfo) { //假如分页信息为空,直接返回,不需要分页。 if (PagingInfo.IsNullOrEmpty(pagingInfo)) { return(models); } if (pagingInfo.PageNumber < 1) { throw new ArgumentOutOfRangeException("索引不能是负数。"); } //需要记数 if (pagingInfo.IsNeedCount) { pagingInfo.TotalCount = models.Count(); } if (pagingInfo.PageNumber == 1) { return(models.Take(pagingInfo.PageSize)); } return(models .Skip((pagingInfo.PageNumber - 1) * pagingInfo.PageSize) .Take(pagingInfo.PageSize)); }