[UNITY]2DRPG開発日誌 #47 foreachのエラー対処法「InvalidOperationException: Collection was modified; enumeration operation may not execute.」

UNITY

ループ中に参照元のデータを変えるな!(←なぜ?)

foreach文は「ループ中に参照元のList(またはDictionary)に変更を加えるとエラーになる」仕様らしく、

InvalidOperationException: Collection was modified; enumeration operation may not execute.
無効な操作の例外:コレクションが変更されたため、列挙操作を実行できません。

というエラーが発生します。…なにこの仕様??

解決するために色々調べていたのですが、ちょっとコードが解りにくくなるので、単純に

「ループ中に参照元データに変更を加えない」

または

「ループ中に参照元データに変更を加えたければ、【参照元データのコピー】に変更を加えて、ループ後に参照元データに変更結果を反映させる」

という方法が良さそうです。

今回の記事は例となるコードがなくスミマセン。

UNITY
スポンサーリンク
Follow Us
KITTYPOOL
タイトルとURLをコピーしました