Wenn du die Liste abarbeiten willst und die Einträge danach nicht mehr brauchst, wäre TStack<T> oder TList<T> auch eine Option.
Delphi-Quellcode:
uses
System.Generics.Collections
FList: TList<String>;
var lErsterEintrag := FList.Extract( FList.First);
var lLetzterEintrag := FList.Extract( FList.Last);
Zitat:
System.Generics.Collections.TList.Extract
Entfernt einen Listeneintrag und gibt ihn zurück.
Extract entfernt den Eintrag Value aus der Liste und gibt diesen Wert zurück. Wenn sich Value nicht in der Liste befindet, gibt diese Funktion den Standardwert des Typs T zurück.