一、这里就只写下TObjectList的例子
TObjectList <T> 、TList<T>相同
1.需要自己定义一个函数,让sort对其进行回调
//用string类作为例子(可以替换为自己定义的类) const 是必要的修饰词
function MyComparerFunc(const s1,s2: string): Integer;
begin
Result := CompareText(s2, s1);
//Result := -CompareText(s1, s2); {或者这样}
end;
2.用法
myObjectList:TObjectList<string>
数据添加之类的就不写了
直接说sort 的调用方法
procedure MyFunc;
var
l_compare: IComparer<string>;
begin
myObjectList.OwnsObjects := False;
l_compare := TComparer<string>.Construct(MyComparerFunc);
myObjectList.Sort(l_compare);
end;
二、TLsit的用法
不是TList<T>
function CompareNames(Item1, Item2: Pointer): Integer;
begin
result := Integer(CompareValue(P_MissInfo(Item1).MissRate, P_MissInfo(Item2).MissRate));
end;
var
list: Tlist;
list.Sort(@CompareNames);