在wpf 操作集合的时候 ,在将集合里面的东西 便利进行删除的时候,使用foreach 来进行枚举删除 ,常常会出现这样的错误" 集合已修改;可能无法执行枚举操作。"
foreach (DictionaryEntry item in _transmit_tb)//弹出“集合已修改;可能无法执行枚举操作。”
{
if ((t - (DateTime)Time[item.Key]).Seconds > TimeOut)
{
LogOut(item.Key); //此函数的作用是剔除失效的主机
}
}
使用基本的for 循环进行从后往前的遍历,就可以解决这样的问题
for (int i = cabListSource.Count-1; i >= 0;i-- )
{
if (((CabUI)cabListSource[i]).CabInUI.BuildingId == b.SystemId)
{
cabListSource.RemoveAt(i);
}
}
ApplyDataBinding();