Und das am Freitagnachmittag!
Was ich - unter anderem
- nicht verstehe, ist, woher der Comparer weiß, dass der beim Vergleich der Objekte "TZiel" Ziel.Wert3 vergleichen muss / soll. Ich habe mich nämlich auch schon gefragt, wie man BinarySearch verwendet, wenn man doch gar nicht die Objekte, sondern deren einzelne Werte finden will. Bei stackoverflow habe ich eine Konstruktion mit Dummy (und auch noch mit einer anonymen Methode, heute bleibt mir nichts erspart) gefunden:
Delphi-Quellcode:
function SearchList(Wert:string; Liste:TZielListe): Integer;
var Dummy : TZiel;
begin
if not Liste.BinarySearch(Dummy, Result, TDelegatedComparer<TZiel>.Construct(
function (const L, R: TZiel): Integer
begin
Result := AnsiCompareText(L.Wert3,Wert);
end)) then
Result := -1;
end;
Geht das auch anders?