【发布时间】:2014-05-08 08:16:50
【问题描述】:
我正在研究一种算法来遍历现有的 DataSet.DataTable 和 Temporary - DataTable。
我在循环中放置了一个循环来查找每一行中 ID 的值。如果它们匹配,我希望然后从临时数据表中删除行。 (稍后放入数据网格)
当它找到匹配项并尝试删除它时出现错误;
“集合已修改;枚举操作可能无法执行。”
我认为这是一个不稳定的问题,因为我试图从当前正在使用的 DataTable 中删除,但我想不出解决我的问题的解决方案。
有没有经验更丰富的人帮忙?
int res_index = 0;
foreach (DataRow r in myDataSet.tbl_reservation)
{
//MessageBox.Show("r" + myDataSet.tbl_reservation.Rows[res_index]["tableID"].ToString());
int rID = (int)myDataSet.tbl_reservation.Rows[res_index]["tableID"];
int tmp_index = 0;
foreach (DataRow t in tmp_table.Rows)
{
//MessageBox.Show("t" + tmp_table.Rows[tmp_index]["tableID"].ToString());
int tID = (int)tmp_table.Rows[tmp_index]["tableID"];
if (rID == tID)
{
tmp_table.Rows.RemoveAt(tmp_index);
}
tmp_index++;
}
res_index++;
}
【问题讨论】: