使用Linq将DataTable分解为固定大小的块的简洁方法是通过将DataTable的行集合分组。以下是一个示例代码:
using System;
using System.Data;
using System.Linq;
class Program
{
static void Main()
{
DataTable table = new DataTable();
// 填充数据表
int chunkSize = 10;
var chunks = table.AsEnumerable()
.Select((row, index) => new { Row = row, Index = index })
.GroupBy(x => x.Index / chunkSize)
.Select(g => g.Select(x => x.Row).CopyToDataTable());
foreach (DataTable chunk in chunks)
{
// 处理每个数据块
}
}
}
在这个示例中,我们首先创建一个名为chunks
的变量,该变量包含了将DataTable分解为固定大小的块的结果。我们使用Linq的Select
方法将每一行与其索引一起包装在一个匿名类型中,然后使用GroupBy
方法将它们分组为大小为chunkSize
的块。最后,我们使用CopyToDataTable
方法将每个块转换为一个新的DataTable,并将其存储在chunks
变量中。
在处理每个数据块时,可以使用foreach
循环遍历chunks
变量,并对每个块执行所需的操作。
领取专属 10元无门槛券
手把手带您无忧上云