Cómo eliminar elementos de una List de Dart mientras la recorres sin un ConcurrentModificationError
Llamar a remove dentro de un bucle for-in o de forEach lanza ConcurrentModificationError. Usa removeWhere para filtrar en el lugar, crea una lista nueva con where o un collection-for, o recorre el índice hacia atrás. Verificado en Dart 3.13.7, con un benchmark que muestra por qué removeAt en un bucle es la opción lenta.