Man könnte es mit einer while schleifen lösen. Allerdings könnte es dann in einer Endlosschleife enden, wenn der Stringliste neue Zeilen hinzugefügt werden, die wiederum neue Zeilen einfügen...
Delphi-Quellcode:
//...
i := 0;
while i < Liste.Count do
begin
//...
if Foo then
Liste.Add(Bar);
//...
Inc(i);
end;