カスタム比較子を使用する TObjectList にバイナリ検索を実装する必要があります。TCustomComparer を使用していると思います。
目標: 二分探索は、特定のプロパティ パラメータに準拠するリスト内のインスタンスを返します。
例えば:
TMyClass=class
public
Index:integer
end;
TMyObjectList=TObjectList<TMyClass>;
begin
...
aMyClass.Index:=1;
aMyObjectList.binarysearch(aMyClass, aMyClassRef)
...
end;
または単に:
begin
...
aMyObjectList.binarysearch(1, aMyClassRef)
...
end;
ループして、Index==1 を持つリスト内の TMyClass のインスタンスを取得したいと考えています。
C++ では、'==' 演算子をオーバーロードすることでこの目的を達成できます。
新しい Delphi の「ヘルプ」はまばらで散らばっているため、見つけにくくなっています。私は、新しい Delphi ジェネリックのすべてのニュアンスに精通しているわけではありません。
では、Generics.TObjectList を使用して Delphi XE で行うにはどうすればよいでしょうか。
(Delphi XE を使用)。
ティア