可能重复:
在 foreach 中修改列表的最佳方法是什么?
假设我有一个ObservableCollection mycollection
并且我想通过枚举器做一些事情,比如:
foreach(var x in mycollection)
{
// This will do something based on data of x and remove x from mycollection
x.Close();
}
该方法Close()
有一行代码 - mycollection.Remove(x);
. 当我运行此代码时,出现以下错误:
收藏已修改;枚举操作可能无法执行。
我无法更改方法Close()
,因为它在应用程序的许多其他地方被调用。我该如何解决这个问题?