我偶然发现了这段代码here:
List<DataTable> result = DTHead.AsEnumerable()
.GroupBy(row => row.Field<int>("MIVID"))
.Select(g => g.CopyToDataTable())
.ToList();
根据特定字段的值创建List
DataTable
个。
是否可以调整此代码,而不是根据记录数创建List
DataTables
?例如,如果我有18条记录,我希望它分成2 DataTables
,每行10行(第二个表的最后两行是空的)。如果我有35条记录,我最终得到4 DataTable
个,最后5行在表4中为空。
谢谢!
答案 0 :(得分:0)
这就像标准的分页机制:
var result = DTHead.AsEnumerable();
int pageSize = 10;
int pages = result.Count / pageSize + 1;
for (int i = 0; i < pages; i++)
{
var page = result.Skip(i * pageSize).Take(pageSize).Select (t => t.Name)
.CopyToDataTable();
}
当然,在循环中你必须使用page
变量做一些有意义的事情。