好的,我知道我不允许修改我当前正在遍历的集合,但请查看下面的代码,您会看到我什至没有触及执行枚举的集合:
MenuItemCollection tempItems = new MenuItemCollection();
foreach (MenuItem item in mainMenu.Items)
{
if (item.Value != "pen")
tempItems.Add(item);
}
如您所见,我添加项目的集合与我正在迭代的集合不同。但我仍然得到错误:
“集合已修改;枚举操作可能无法执行”。
但是,如果我对代码稍作更改并将 MenuItemCollection 替换为 List,它可以工作:
List<MenuItem> tempItems = new List<MenuItem>();
foreach (MenuItem item in mainMenu.Items)
{
if (item.Value != "pen")
tempItems.Add(item);
}
有人可以解释一下为什么吗?