Primeiro de tudo: terminologia. Se você diz "lista de lixo", as pessoas pensam que você está falando sobre o coletor de lixo. Vamos chamá-lo de "lista morta".
Como você provavelmente descobriu, daí a sua pergunta, você não pode remover itens de uma coleção enquanto estiver iterando por ela. Se sua coleção é uma List<>maneira mais simples de remover itens, é:
for(int i = list.Count-1; i >= 0; --i)
{
if(list[i].IsDead)
list.RemoveAt(i);
}
Observe que você itera para trás . Você pode remover itens enquanto faz a iteração para a frente, mas é mais confuso e requer um goto. Você não pode fazer isso com foreach.
Você pode fazer a remoção separadamente do seu loop de atualização. Ou você pode mesclá-lo ao seu loop de atualização. Sempre faça o RemoveAtfinal do loop - depois desse ponto no loop, list[i]não poderá ser considerado válido (ele se tornará válido novamente na próxima iteração).
Observe também que cada objeto tem seu próprio IsDeadsinalizador (se você estiver usando o padrão de descarte, poderá fazê-lo IsDisposed) - você realmente não precisa manter uma "lista de mortos".
É preferível o desempenho de um sinalizador em cada item, pois você evita procurar na lista para fazer a remoção. E também é preferível para o design - significa que cada objeto pode verificar facilmente se está morto - para que você não invoque acidentalmente nenhum método (se esses objetos estiverem implementando o padrão descartável, eles podem ser lançados ObjectDisposedExceptionnesse caso).
Se você tiver uma coleção diferente de uma List<>, a remoção de itens inativos dessa coleção ainda poderá envolver a criação de uma lista inoperante (pois a remoção durante a iteração pode não ser possível). Na minha opinião, é melhor, em termos de design, criar a lista de mortos imediatamente antes de ser usada, percorrendo a coleção procurando IsDeadsinalizadores, em vez de tentar manter a lista à medida que os objetos são mortos.
Depois de terminar com uma lista de mortos, você deve Clear()fazê - lo e mantê-lo por perto para reutilizá-lo mais tarde.