C# 集合已修改;可能無法執行枚舉操作


在winform 項目時遇到: 集合已修改;可能無法執行枚舉操作的問題

 

       錯誤原因:當用foreach遍歷Collection時,如果對Collection有Add或者Remove或其他類似操作都會有這個錯誤。

因為Collection返回的IEnumerator把當前的屬性暴露為只讀屬性,所以對其的修改會導致運行時錯誤;

       正確代碼:

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();
}

因為Form是引用類,所以可以很輕松Close;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM