C# 集合已修改;可能没法执行枚举操做

在winform 项目时遇到: 集合已修改;可能没法执行枚举操做的问题orm

 

       错误缘由:当用foreach遍历Collection时,若是对Collection有Add或者Remove或其余相似操做都会有这个错误。blog

由于Collection返回的IEnumerator把当前的属性暴露为只读属性,因此对其的修改会致使运行时错误;io

       正确代码:form

FormCollection collection = Application.OpenForms;
List<Form> frmList = new List<Form>();
for (int i = 0; i < collection.Count; i++)
{
if (collection[i].GetType() == typeof(FrmMainCharts))
{
frmList.Add(collection[i]);
}
}
//
for (int i = 0; i < frmList.Count; i++)
{
frmList[i].Close();
}foreach

由于Form是引用类,因此能够很轻松Close;List

相关文章
相关标签/搜索