elhor maneira de remover itens correspondentes de uma lista [duplicado]

Esta pergunta já tem uma resposta aqui:

Qual é a melhor maneira de modificar uma lista em um loop 'foreach' 11 respostas

No c #, quando quero remover alguns itens de uma lista, faço-o da seguinte maneira,

List<Item> itemsToBeRemoved = new List<Item>();
foreach(Item item in myList)
{
   if (IsMatching(item)) itemsToBeRemoved.Add(item);
}

foreach(Item item in itemsToBeRemoved)
{
   myList.Remove(item);
}

Existe alguma maneira melhor de fazer isso?

questionAnswers(7)

yourAnswerToTheQuestion