0

我在这里遇到了这段漂亮的小代码:

 List<DataTable> result = DTHead.AsEnumerable()
            .GroupBy(row => row.Field<int>("MIVID"))
            .Select(g => g.CopyToDataTable())
            .ToList();

它根据特定字段的值创建 of ListDataTable

是否可以调整此代码以根据记录数创建List一个DataTables?例如,如果我有 18 条记录,我希望将其分成 2 条DataTables,每条 10 行(第二个表的最后两行为空)。如果我有 35 条记录,我会得到 4 条记录,DataTable最后 5 行在表 4 上为空。

谢谢!

4

1 回答 1

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变量做一些有意义的事情。

于 2012-12-24T08:32:34.227 回答