As Bart suggested, you can use too the for/in loop: for s in sl do WriteLn( s); For example: var sl: TStringList; s: String; begin sl:= TStringList.Create; try sl.Add('1'); sl.Add('2'); for s in sl do WriteLn( s); finally FreeAndNil( sl); end; end. Output: 1 2 This works on arrays and strings too.