今天运行一段代码时出现:的错误
贴出错误代码:
foreach (DataRow dv in dsfilter.Tables[0].Rows)
{
if (int.Parse(dv["STOCK"].ToString()) <= 0)
{
dv.Delete();
}
}
原因:
foreach是取只读的,在取的时候数据不能变(包括修改,删除,添加等)。要避免这个问题,就应该使用for循环。
改正:
for (int i = dsfilter.Tables[0].Rows.Count-1; i >=0; i--)
{
DataRow dv = dsfilter.Tables[0].Rows[i];
if (int.Parse(dv["STOCK"].ToString()) <= 0)
{
dv.Delete();
}
}
转载于:https://blog.51cto.com/saintyt/1079638