zoukankan      html  css  js  c++  java
  • c# 分页 PaginatedList<TResult>

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 
     5 namespace Microestc.PaginatedList
     6 {
     7     public class PaginatedList<TResult> : List<TResult>
     8     {
     9         public PaginatedList() : base() { }
    10 
    11         public PaginatedList(IEnumerable<TResult> items, int totalCount, int pageIndex, int pageSize) : base(items)
    12         {
    13             TotalCount = totalCount;
    14             PageCount = (totalCount + pageSize - 1) / pageSize;
    15             PageIndex = pageIndex;
    16             PageSize = pageSize;
    17             HasPrev = pageIndex > 1;
    18             HasNext = pageIndex < PageCount;
    19         }
    20 
    21         public virtual int TotalCount { get; private set; }
    22 
    23         public virtual int PageCount { get; private set; }
    24 
    25         public virtual int PageIndex { get; private set; }
    26 
    27         public virtual int PageSize { get; private set; }
    28 
    29         public virtual bool HasPrev { get; private set; }
    30 
    31         public virtual bool HasNext { get; private set; }
    32     }
    33 
    34     public static class PaginatedListExtensions
    35     {
    36         public static PaginatedList<TResult> PaginatedList<TResult>(this IEnumerable<TResult> source, int pageIndex, int pageSize)
    37         {
    38             var count = source.Count();
    39             var items = source.Skip((pageIndex - 1) * pageSize).Take(pageSize);
    40             return new PaginatedList<TResult>(items, count, pageIndex, pageSize);
    41         }
    42 
    43         public static PaginatedList<TResult> PaginatedList<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector, int pageIndex, int pageSize)
    44         {
    45             var count = source.Count();
    46             var items = source.Skip((pageIndex - 1) * pageSize).Take(pageSize).Select(selector);
    47             return new PaginatedList<TResult>(items, count, pageIndex, pageSize);
    48         }
    49     }
    50 }
  • 相关阅读:
    三层架构
    SQL数据库资料整理(2006年)
    SQL基础:常用SQL语句详解(转)
    什么是SOA?
    DOTNET中的SqlHelper类
    C#精髓(WMI完美秀出CPU编号厂商主频电压等全部信息)
    根据分类,每类随机抽取N个(N对每个分类都不一样,SQL问题)
    C#,你真的入门了吗
    .Net平台开发的技术规范与实践精华总结 (转)
    学习Java需要达到的30个目标
  • 原文地址:https://www.cnblogs.com/microestc/p/12113502.html
Copyright © 2011-2022 走看看