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