1. ホーム
  2. cp

エラーです。コレクションが変更されました。列挙操作が実行されない可能性があります。

2022-02-10 05:27:41

コレクションをforeachで反復処理する際、コレクションにAddまたはRemove操作があると、以下のランタイムエラーが発生します。

コレクションは変更されました。列挙操作は実行されない可能性があります。

この理由は、Collectionが返すIEnumeratorはカレントプロパティを読み取り専用で公開しているため、これを変更すると実行時エラーが発生するからです。foreachをforに変更して反復処理すればよいのです。

Hashtableの場合、トラバーサル用の[]演算子が用意されていないため、以下のように、まず項目を配列に格納してから、それに対してRemoveやAddの操作を行うことができる。