小编典典

从DataTable删除特定的行

c#

我想从DataTable中删除一些行,但它给出了这样的错误,

集合已修改;枚举操作可能无法执行

我用来删除此代码,

foreach(DataRow dr in dtPerson.Rows){
    if(dr["name"].ToString()=="Joe")
        dr.Delete();
}

那么,问题出在哪里,如何解决呢?您建议哪种方法?


阅读 344

收藏
2020-05-19

共1个答案

小编典典

如果您从集合中删除项目,则该集合已被更改,无法继续枚举它。

而是使用For循环,例如:

for(int i = dtPerson.Rows.Count-1; i >= 0; i--)
{
    DataRow dr = dtPerson.Rows[i];
    if (dr["name"] == "Joe")
        dr.Delete();
}
dtPerson.AcceptChanges();

请注意,您在反向进行迭代,以避免在删除当前索引后跳过行。

2020-05-19