Como remover elementos de uma lista genérica enquanto iterar sobre ele?

Eu estou procurando um melhorpadronizar para trabalhar com uma lista de elementos que precisam ser processados ​​e, dependendo do resultado, são removidos da lista.

Você não pode usar.Remove(element) dentro de umforeach (var element in X) (porque resulta emCollection was modified; enumeration operation may not execute. exceção) ... você também não pode usarfor (int i = 0; i < elements.Count(); i++) e.RemoveAt(i) porque perturba sua posição atual na coleção em relação ai.

Existe uma maneira elegante de fazer isso?

questionAnswers(22)

yourAnswerToTheQuestion