我不明白为什么这段代码行不通。
foreach (DataRow dataRow in dataTable.Rows)
{
if (true)
{
dataRow.Delete();
}
}
最佳答案
即使DataRow.Delete
不会修改集合的状态,但Microsoft documentation声明在迭代集合时不应调用它:
最好的解决方案通常是为要删除的项目创建一个单独的集合(例如List<DataRow>
),然后在完成迭代后将其删除。
对于要从集合中删除项目的情况,这也是解决方案,因为.NET中的大多数集合都不允许您在对其进行迭代时更改集合的内容。
关于c# - 安全删除ForEach中的DataRow,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2341580/