わかりました。現在トラバースしているコレクションを変更することは許可されていませんが、以下のコードを見ると、列挙が実行されているコレクションに触れていないことがわかります。
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);
}
誰かが私に理由を説明できますか?