C#如何处理已拆分为多个等分DataTable的数组并遍历执行相同操作
遍历拆分后子表的实现方法
你拆分得到的DataTable[]数组是天然有序的,数组下标0对应第一块20行数据、下标1对应第二块,完全符合你要求的处理顺序,直接遍历数组即可。
方式1:无需感知当前处理批次,用foreach遍历
// 按拆分顺序逐个取子表执行逻辑 foreach (DataTable subTable in splittables) { // 此处编写你的业务处理逻辑 // 示例:遍历子表内所有行 foreach (DataRow row in subTable.Rows) { // 单条数据处理逻辑 } }
方式2:需要获取当前处理批次序号,用for循环
for (int i = 0; i < splittables.Length; i++) { DataTable currentSubTable = splittables[i]; int batchNo = i + 1; // 批次号从1开始计数 // 业务处理逻辑,可单独封装为方法复用 ProcessSubTable(currentSubTable, batchNo); } // 封装的子表处理方法 void ProcessSubTable(DataTable subTable, int batchNo) { Console.WriteLine($"正在处理第{batchNo}批数据,共{subTable.Rows.Count}行"); // 你的业务逻辑代码 }
注意说明
- 最后一个子表的行数可能不足20行,上述遍历逻辑无需额外适配,自动兼容该场景
- 如果你的业务没有严格的顺序要求,可使用
Parallel.ForEach做并行处理进一步提升性能,要求按顺序处理的话使用上述同步遍历即可
内容的提问来源于stack exchange,提问作者WAMLeslie
相关产品推荐
相关产品推荐

