Pascal TStringList.Sort能否返回已排序的索引?

Pascal TStringList.Sort能否返回已排序的索引?,pascal,freepascal,fpc,Pascal,Freepascal,Fpc,使用TStringList.Sort对自由pascal中的字符串集合进行排序,我需要记住初始顺序。是否有可能返回已排序的索引? 如果没有,如何有效地执行此操作?您可以使用object属性存储项目的原始索引 因此,您可以通过这种方式插入项目 SL.AddObject('Item 1', TObject(SL.Count)); SL.AddObject('Item 2', TObject(SL.Count)); 并在对TStringList排序后检索原始索引 Index := Integer

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

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

因此,您可以通过这种方式插入项目

SL.AddObject('Item 1', TObject(SL.Count));
SL.AddObject('Item 2', TObject(SL.Count));
并在对TStringList排序后检索原始索引

   Index := Integer(SL.Objects[i]);

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

因此,您可以通过这种方式插入项目

SL.AddObject('Item 1', TObject(SL.Count));
SL.AddObject('Item 2', TObject(SL.Count));
并在对TStringList排序后检索原始索引

   Index := Integer(SL.Objects[i]);

有点晚了,但是由于字符串是写时复制的,所以可以使用

   t2.assign(t1);

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

有点晚了,但是由于字符串是写时复制的,您可以使用

   t2.assign(t1);

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

谢谢。在发布问题后,我发现了这个问题,并认为它可能对我有用,它与您的建议相同。谢谢。在发布了这个问题后,我发现了这个,并认为它可能对我有用,它与你的建议是一样的。