【发布时间】:2012-10-31 06:21:23
【问题描述】:
好的,我知道我不允许修改我当前正在遍历的集合,但是看看下面的代码,你会看到我什至没有触及执行枚举的集合:
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);
}
谁能解释一下为什么?
【问题讨论】:
标签: c# asp.net collections