このエラーを解決するためには、以下のシンプルで簡単な方法を試すことができます。
- リストのコピーを作成する: 反復中にリストの要素を変更する代わりに、反復対象のリストのコピーを作成し、そのコピーを操作します。例えば、
List.from()
メソッドを使用してコピーを作成することができます。
List<String> myList = ['item1', 'item2', 'item3'];
List<String> myListCopy = List.from(myList);
for (var item in myListCopy) {
// リストの要素を変更する処理
}
- 反復中の要素の削除を避ける: 反復中に要素を削除するとエラーが発生するため、要素の削除を避けることが重要です。代わりに、削除する要素を別のリストに追加し、反復が終了した後に元のリストから要素を削除する方法を検討してください。
List<String> myList = ['item1', 'item2', 'item3'];
List<String> itemsToRemove = [];
for (var item in myList) {
if (shouldRemove(item)) {
itemsToRemove.add(item);
}
}
myList.removeWhere((item) => itemsToRemove.contains(item));