Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.012 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

AW: Seltsames Verhalten von IndexOf bei sortierter generischer Liste

  Alt 22. Feb 2013, 12:59
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.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (22. Feb 2013 um 13:02 Uhr)
  Mit Zitat antworten Zitat