Für TStrings und Nachfahren existiert standardmäßig schon ein Enumerator.
Delphi-Quellcode:
TStringsEnumerator = class
private
FIndex: Integer;
FStrings: TStrings;
public
constructor Create(AStrings: TStrings);
function GetCurrent: string; inline;
function MoveNext: Boolean;
property Current: string read GetCurrent;
end;
TStrings = class(TPersistent)
public
...
function GetEnumerator: TStringsEnumerator;
...
end;
Bei Arrays und für einige andere Listen (z.B. TList oder TComponent) gibt es auch sowas.
Für eigene Klassen kann man Diesen selber nachrüsten.