我想从DataTable中删除一些行,但它给出了这样的错误,
集合已修改;枚举操作可能无法执行
我用来删除此代码,
foreach(DataRow dr in dtPerson.Rows){ if(dr["name"].ToString()=="Joe") dr.Delete(); }
那么,问题出在哪里,如何解决呢?您建议哪种方法?
如果您从集合中删除项目,则该集合已被更改,无法继续枚举它。
而是使用For循环,例如:
for(int i = dtPerson.Rows.Count-1; i >= 0; i--) { DataRow dr = dtPerson.Rows[i]; if (dr["name"] == "Joe") dr.Delete(); } dtPerson.AcceptChanges();
请注意,您在反向进行迭代,以避免在删除当前索引后跳过行。