static void Main(string[] args)
{
List<int> vs = new List<int>();
for (int i = 0; i < 101; i++)
{
vs.Add(i);
}
//分成3组
SpliteSourceByCount(vs, 3);
//根据页面大小分组 20
SpliteSourceBySize(vs,20);
}
/// <summary>
/// 将集合若干组
/// </summary>
/// <param name="source">数据集</param>
/// <param name="pageSiez">每一组大小</param>
private static List<List<int>> SpliteSourceBySize(List<int> source, int pageSiez)
{
int listCount = (source.Count() - 1) / pageSiez + 1;
// 计算组数
List<List<int>> pages = new List<List<int>>();
for (int pageIndex = 1; pageIndex <= listCount; pageIndex++)
{
var page = source.Skip((pageIndex - 1) * pageSiez).Take(pageSiez).ToList(); pages.Add(page);
}
return pages;
}
/// <summary> /// 将集合若干组
/// /// </summary> ///
/// <param name="source">数据集</param>
/// /// <param name="count">组数</param>
private static List<List<int>> SpliteSourceByCount(List<int> source, int count)
{
int pageSiez = source.Count() / count;//取每一页大小
int remainder = source.Count() % count;//取余数
List<List<int>> pages = new List<List<int>>();
for (int pageIndex = 1; pageIndex <= count; pageIndex++)
{
if (pageIndex != count)
{
var page = source.Skip((pageIndex - 1) * pageSiez).Take(pageSiez).ToList(); pages.Add(page);
}
else
{
var page = source.Skip((pageIndex - 1) * pageSiez).Take(pageSiez + remainder).ToList(); pages.Add(page);
}
}
return pages;
}