You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CaiQie/Tool/PagedList.cs

38 lines
1.3 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tool
{
public class PagedList<T>
{
public List<T> Items { get; private set; } // 存储当前页的元素
public int PageIndex { get; private set; } // 当前页码从0开始
public int PageSize { get; private set; } // 每页的元素数
public int TotalCount { get; private set; } // 总记录数
public int TotalPages => (int)Math.Ceiling((double)TotalCount / PageSize); // 总页数
public bool HasPreviousPage => PageIndex > 0;
public bool HasNextPage => PageIndex + 1 < TotalPages;
public PagedList(List<T> items, int count, int pageIndex, int pageSize)
{
Items = items;
TotalCount = count;
PageIndex = pageIndex;
PageSize = pageSize;
}
// 工厂方法,用于创建分页列表
public static PagedList<T> Create(IList<T> source, int pageIndex, int pageSize)
{
var count = source.Count; // 总记录数
var items = source.Skip(pageIndex * pageSize).Take(pageSize).ToList(); // 获取当前页的元素
return new PagedList<T>(items, count, pageIndex, pageSize);
}
}
}