背景
配列の操作を実装していたらこんなエラーが出た
InvalidOperationException: Collection was modified; enumeration operation may not execute.
おや?
やっていることは
foreach (型 data in dataList)
{
〜
if (条件)
{
dataList.Remove(data);
}
}
のような処理である。
ググってみると「ループ内で要素・行を追加また削除すると発生します」とのことらしい。
解決法
以下のように対応
List<型> tmpDataList = new List<型>(dataList);
foreach (型 data in tmpDataList)
{
〜
if (条件)
{
dataList.Remove(data);
}
}
これで解決!