Wenn du über den Comparer gar nicht die Identität einer Instanz bestimmen willst, warum gibst du ihn der Liste mit?
Sortiere doch einfach nur danach und gut ist:
Delphi-Quellcode:
list.Sort(TComparer<TSample>.Construct(function(const l, r : TSample) : Integer
begin
result := AnsiCompareStr(l.Text, r.Text);
end));
Wenn das bei einer generischen Liste gehen würde ...
Tut es:
Delphi-Quellcode:
LList.Sort( TComparer<TItem>.Construct(
function( const L, R : TItem ) : Integer
begin
Result := L.Value - R.Value;
end ) );
Generell würde ich aber empfehlen, in den Vergleich die ID mit aufzunehmen. Dann kannst du den Comparer beim Create schon übergeben.