在用foreach遍历Application.OpenForms的时候,弹出“集合已修改;可能无法执行枚举操作。”
原代码如下
public static void closeform()
{
if (Application.OpenForms != null && Application.OpenForms.Count > 0)
{
foreach (Form cform in Application.OpenForms)
{
cform.Close();
}
}
}
修改之后代码如下
public static void closeform()
{
if (Application.OpenForms != null && Application.OpenForms.Count > 0)
{
for (int i = 0; i < Application.OpenForms.Count;i++ )
{
Form cform = Application.OpenForms[i];
cform.Close();
}
}
}
foreach语句是对枚举数的包装,它只允许从集合中读取,不允许写入集合。
也就是,不能在foreach里遍历的时侯把它的元素进行删除或增加的操作的