Wenn Du unbedingt das for .. in - Konstrukt verwenden willst, legst Du halt eine Löschliste an, in die Du alle zu löschenden Kandidaten übernimmst und nach vollständigem Duchlauf diese Kandidaten gezielt löschst.
In C# führt Dein Vorgehen regelmäßig zu einer
Exception. Dort ist der Umweg über den Index i.A. nicht möglich, deshalb ist der obige ein häufig beschrittener Weg.