当DataTable
与Parallel.ForEach
一起使用时,我得到了:
指数超出范围。必须是非负数且小于 集合。
请帮我解决。
static void Main(string[] args)
{
DataTable dt = CreateTable();
dt.Columns.Add("C");
//Parallel.ForEach(Partitioner.Create(0, dt.Rows.Count), range =>
//{
// for (int j = range.Item1; j < range.Item2; j++)
// {
// dt.Rows[j]["C"] = dt.Rows[j]["A"] + "-" + dt.Rows[j]["B"];
// }
//});
Parallel.ForEach(dt.AsEnumerable(), row =>
{
row["C"] = row["A"] + "-" + row["B"];
});
}
private static DataTable CreateTable()
{
DataTable dataTable = new DataTable();
dataTable.Columns.Add("A");
dataTable.Columns.Add("B");
for (int i = 0; i < 100000; i++)
{
dataTable.Rows.Add("A" + i, "B" + i);
}
return dataTable;
}