Zitat von
Peinhard:
Zitat von
Khabarakh:
Auch eine while-Schleife würde nichts ändern. Es wird zwar keine
Exception ausgelöst, aber lediglich jedes zweite Item gelöscht.
Das hab' ich so pauschal auch nicht behauptet
Aber auch nicht verneint, also habe ich verneint
.
Es gäbe auch noch eine Alternative, bei der die Schleifenrichtung irrelevant ist, allerdings auch wieder etwas ineffektiver:
Delphi-Quellcode:
for i := 0 to List.Count - 1 do
ThrowIntoGarbage(List[0]);
[edit]Entspricht der Lösung von jbg weiter oben. [/edit]
PS: Das halte ich für einen groben Designfehler in der
VCL. Mit einer einfachen Control-Collection-Klasse würde ein "Controls.Clear" genügen und alle wären zufrieden.