TStringList.Sort可以返回排序索引吗?

时间:2012-02-02 09:26:20

标签: pascal freepascal fpc

使用TStringList.Sort对free pascal中的字符串集合进行排序,我需要记住初始顺序。是否有可能返回已排序的索引? 如果没有,如何有效地完成这项工作?

2 个答案:

答案 0 :(得分:3)

您可以使用object属性存储项目的原始索引。

所以你可以用这种方式插入你的物品

SL.AddObject('Item 1', TObject(SL.Count));
SL.AddObject('Item 2', TObject(SL.Count));

并在对TStringList

进行排序后检索原始索引
   Index := Integer(SL.Objects[i]);

答案 1 :(得分:0)

有点晚了,但由于字符串是写入时的副本,你可以简单地使用

将tstringlist分配给第二个tstringlist
   t2.assign(t1);

这不会复制字符串。由于写入行为的复制,tstringlist就像是字符串的索引。