読者です 読者をやめる 読者になる 読者になる

デジタルフロッグ

Unityのアプリの開発をしながらいろいろと忘れないための備忘録でございます。

InvalidOperationException: Collection was modified; enumeration operation may not execute.が出た場合

C#

このエラーが何度か出てコードを見返しても原因がわからなかったのでgoogle先生に翻訳してもらったところ。

InvalidOperationException:コレクションが変更されました。 列挙操作が実行されないことがあります。

という事でした。

調べてみると処理中にコレクションに追加・削除などの処理が加わるとコレクションの中身を変えるんじゃない!という事でエラーが吐き出されてしまうようです。

解決策として考えたのはListにしてしまおうという事で解決しました。

List<型> hoge = IEnumerable.ToList();

Listにしてしまえば処理中に変更を加えても大丈夫みたいです。ToArray()とかでもOKのようです。