Collection was modified; enumeration operation may not execute

Para remover um item de uma colecção, nada mais do que

List s = new List() { “1”, “2” };

s.Remove(“1”);

Mas quando usamos a colecção dentro de um ciclo e queremos remover o item que está carregado actualmente, podemos ser surpreendidos com uma excepção do tipo “Collection was modified; enumeration operation may not execute”.

List s = new List() { “1”, “2” };

foreach (string ss in s)

{

s.Remove(ss);

}

Para contornar este erro, e eliminar todos os items que pretendemos durante o ciclo, basta a seguinte alteração ao código

List s = new List() { “1”, “2” };

foreach (string ss in **new List(s)**)

{

s.Remove(ss);

}