2012-02-02 43 views

回答

3

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

所以,你可以用这种方式

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

插入您的项目,并恢复原始索引后的排序TStringList中

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

谢谢。在发布这个问题后,我发现这个[答案](http://stackoverflow.com/a/7237738/1165818),并认为它可能适用于我,它与您的建议相同。 – hdrz 2012-02-02 19:45:26

0

有点晚,但由于字符串上写副本,你可以只需将tstringlist分配给第二个tstringlist使用

t2.assign(t1); 

这不会重复s trings。由于写入行为的副本,tstringlist就像字符串的索引。