收集被修改; 枚举操作可能无法执行

use*_*618 3 .net c# windows

我收到错误:收集被修改; 枚举操作可能无法执行.我试图删除除当前之外的所有打开的表单对象:

    FormCollection fc = Application.OpenForms;
    foreach (Form form in fc)
    {
        if (form.ToString().Contains("_MainFrom.Form1"))
        {
            // Do nothing
        }
        else
        {
            form.Hide();
            form.Dispose();
        }
    }
Run Code Online (Sandbox Code Playgroud)

L.B*_*L.B 7

您无法修改枚举的集合.

使用 foreach (Form form in fc.Cast<Form>().ToList())