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