List<T> 分页方式,泛型分页方式

List
protected List<T> ListPager<T>(List<T> DataSource, int CurrentPageIndex, int PageSize, string FilterExpression, refint count)
{
count
=0;
if (DataSource ==null|| DataSource.Count ==0)
return DataSource;
count
= DataSource.Count;
if (string.IsNullOrEmpty(FilterExpression))
{
int startIndex = CurrentPageIndex * PageSize;
if (startIndex + PageSize > DataSource.Count)
{
PageSize
= DataSource.Count - startIndex;
}
return DataSource.GetRange(startIndex, PageSize);
}
else
{
DataTable dt
= KingLib.DataHelper.ListToDataTable<T>(DataSource);
DataView dv
= dt.DefaultView;
dv.RowFilter
= FilterExpression;
List
<T> NewDataSource = KingLib.DataHelper.DataTableToList<T>(dv.ToTable());
count
= NewDataSource.Count;
int startIndex = CurrentPageIndex * PageSize;
if (startIndex + PageSize > NewDataSource.Count)
{
PageSize
= NewDataSource.Count - startIndex;
}
return NewDataSource.GetRange(startIndex, PageSize);
}
}
千人.NET交流群:18362376,因为有你,代码变得更简单,加群请输入cnblogs
原文地址:https://www.cnblogs.com/kingkoo/p/2116946.html