Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

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

AW: Generic ObjectList und Suchen - Wie am besten ?

  Alt 6. Aug 2014, 10:09
Delphi-Quellcode:
type
  TMyObjectList<T> = class(TObjectList<T>);
  public
    function Search(const predicate: TPredicate<T>): T;
  end;
Einsatz:
Delphi-Quellcode:
myDriver := driverList.Search(
  function(d: TDriver): Boolean
  begin
    Result := d.Id = 1234
  end);
Vorteil: Du schränkst deine generische Listenklasse nicht auf bestimmte Suchkriterien ein, die nur für bestimmte Arten von T gelten.

Wenn dir das Schreiben der anonymen Methode zu unhandlich ist, kannst du das auch noch auslagern:

Delphi-Quellcode:
function DriverById(i: Integer): TPredicate<TDriver>;
begin
  Result :=
    function(d: TDriver): Boolean
    begin
      Result := d.Id = i;
    end;
end;
Einsatz:
Delphi-Quellcode:

myDriver := driverList.Search(DriverById(1234));
Eventuell kannst du dir auch Spring4D anschauen, die Listen dort unterstützen alle Arten von Suchen, Filtern, etc
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat