假设一个非常简单的对象
TPerson = class
private
name : String;
DateOfBirth: TDatetime;
end;
.
.
aList : TObjectList<TPerson>;
.
.
假设aList是这样填充的:
| 名称|出生日期|
| --------------|--------------|
| 亚当|2023年1月1日|
| 爱丽丝|2019 - 02 - 21|
| 亚当|2022年1月1日|
如何按姓名和生日对列表排序?
我尽力了
aList.sort(TComparer<TPerson>.Construct(
function (const L, R: TPerson): integer
begin
if L.name=R.name then
Result:=0
else if L.name< R.name then
Result:=1
else
Result:=-1;
end));
这工程的名称,但在同一个名称,我想排序的出生日期太
我希望我的对象以这种方式排序:
| 名称|出生日期|
| --------------|--------------|
| 亚当|2022年1月1日|
| 亚当|2023年1月1日|
| 爱丽丝|2019 - 02 - 21|
怎么做呢?
我用的是 Delphi XE 10
2条答案
按热度按时间55ooxyrt1#
当两个名字比较相同时,你需要比较他们的生日并返回结果,例如:
或者,也有RTL函数可用于比较字符串和日期,例如:
ktca8awb2#
只处理Name属性匹配的情况。