C# 集合已修改,枚举可能无法继续
我有下面的代码C# 集合已修改,枚举可能无法继续,c#,c#-4.0,collections,C#,C# 4.0,Collections,我有下面的代码 public bool Notify(bool filterStatus) { foreach (IFilterStatusListener listener in listeners) { listener.Update(filterStatus); } return true; } 方法Update递归调用子对象的Notify public void Update(bool status) { this.isFilteredFixe
public bool Notify(bool filterStatus)
{
foreach (IFilterStatusListener listener in listeners)
{
listener.Update(filterStatus);
}
return true;
}
方法Update
递归调用子对象的Notify
public void Update(bool status)
{
this.isFilteredFixed = false;
this.Notify(status);
this.RaisePropertyChanged("IsFiltered");
}
当我运行这段代码时,我得到下面的错误
我该怎么办?
foreach
希望集合保持不变。您可以尝试正常的for
循环
见:
foreach语句用于遍历集合以获取所需信息,但不能用于从源集合中添加或删除项以避免不可预测的副作用。如果需要从源集合中添加或删除项,请使用for循环
foreach
希望集合保持不变。您可以尝试正常的for
循环
见:
foreach语句用于遍历集合以获取所需信息,但不能用于从源集合中添加或删除项以避免不可预测的副作用。如果需要从源集合中添加或删除项,请使用for循环
当您使用foreach语句迭代集合时,您不能更改正在迭代的集合,因为迭代器会丢失它实际所在的位置 有几种解决方案:
- 使用for循环进行迭代
- 您可以创建一个正在迭代的集合的副本,并对其进行操作
- 使用for循环进行迭代
- 您可以创建一个正在迭代的集合的副本,并对其进行操作
listeners
?实现IFilterStatusListener
的自定义类型对象在迭代集合时尝试更新集合。阅读:这里什么是listeners
?实现IFilterStatusListener