Mar*_*oni 10 delphi sorting delphi-xe4
我有一个这样的列表:
FMyScheduleList: TObjectList<TMySchedule>;
Run Code Online (Sandbox Code Playgroud)
它有一个属性:
property ADate: TDate read FDate write FDate;
Run Code Online (Sandbox Code Playgroud)
如何通过此属性对列表进行排序?
RRU*_*RUZ 22
您必须实现一个Custom IComparer
函数将此实现传递给类的Sort
方法System.Generics.Collections.TObjectList
,您可以使用带有类似方法的匿名函数来执行此操作System.Generics.Defaults.TComparer
.
FMyScheduleList.Sort(TComparer<TMySchedule>.Construct(
function (const L, R: TMySchedule): integer
begin
if L.ADate=R.ADate then
Result:=0
else if L.ADate< R.ADate then
Result:=-1
else
Result:=1;
end
));
Run Code Online (Sandbox Code Playgroud)
正如@Stefan建议你也可以使用单位中CompareDate
定义的功能System.DateUtils
.
FMyScheduleList.Sort(TComparer<TMySchedule>.Construct(
function (const L, R: TMySchedule): integer
begin
Result := CompareDate(L.ADate, R.ADate);
end
));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6379 次 |
最近记录: |