今天运行一段代码时出现:的错误
贴出错误代码:
            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();
                }
            }