C # impedindo a exceção de coleção modificada

Faz

 foreach(T value in new List<T>(oldList) )

é perigoso (caro) quando oldList contém 1 milhão de objetos T?

De maneira mais geral, qual é a melhor maneira de enumerar sobre oldList, considerando que elementos podem ser adicionados / removidos durante a enumeração ...

questionAnswers(9)

yourAnswerToTheQuestion