Ich habe eine Sammlung von
%Vor%TActivityCategory hat eine Name-Eigenschaft vom Typ string und ich möchte den TList mit der Name-Eigenschaft suchen.
Ich sehe BinarySearch in der TList & lt; & gt; aber das würde eine Instanz von TActivityCategory erfordern. Ich möchte nur die Zeichenfolge für einen Namen übergeben.
Wie würde ich das machen?
Wenn Sie die Liste erstellen, können Sie einen Vergleich übergeben. Es gibt einige Vergleichsklassen in der Generics.Defaults-Unit, in der Sie eine anonyme Methode zum Vergleichen zweier Elemente übergeben können. Sie werden für verschiedene Methoden wie IndexOf, Contains oder Sort verwendet.
Beispiel:
%Vor%Wenn Sie nicht nach einer Instanz suchen müssen, müssen Sie Ihre eigene Suche durchführen. Es gibt drei grundlegende Möglichkeiten, dies zu tun:
TDictionary<string, TActivityCategory>
. Keine Suche erforderlich, aber Sie müssen etwas Code schreiben, um die beiden synchron zu halten. Um ehrlich zu sein, und unter Berücksichtigung aller für einen komparatorbasierten Ansatz erforderlichen Kesselplatten ist es vielleicht am einfachsten, eine eigene Suchroutine zu schreiben:
%Vor%