无法在foreach循环中处理DataTable
在我的Dispose方法中,我将处理数据集所具有的所有内容,如下所示:
foreach (DataTable myTable in this.Tables) { myTable.Dispose(); }
这里this.Tables是public DataTableCollection Tables { get; }
public DataTableCollection Tables { get; }
我有大约56张桌子。桌子接近这个电话。
它可以很好地用于几个表但突然抛出:
System.InvalidOperationException:集合修改错误
我不确定为什么会这样。
我试图搜索这个exception很多,但我不能理解为什么它在我的应用程序中破坏。
可能是因为线程? 或者我需要将其转换为列表?
例外情况是因为集合在枚举时会被修改。 这个答案解释得很好。
区别在于您枚举的是DataTableCollection
,它不是通用集合,因此链接答案中的解决方案在这种情况下不适用。 您可以将集合强制转换为通用集合,然后枚举它。
foreach (DataTable thisTable in this.Tables.Cast().ToArray())