TStringList.Sortを使用して文字列のコレクションをフリーパスカルで並べ替えるには、最初の順序を覚えておく必要があります。ソートされたインデックスを返す可能性はありますか?そうでない場合、これを効率的に行うにはどうすればよいですか?
2 に答える
3
objectプロパティを使用して、アイテムの元のインデックスを保存できます。
したがって、この方法でアイテムを挿入できます
SL.AddObject('Item 1', TObject(SL.Count));
SL.AddObject('Item 2', TObject(SL.Count));
TStringListを並べ替えた後、元のインデックスを取得します
Index := Integer(SL.Objects[i]);
于 2012-02-02T16:38:37.753 に答える
0
少し遅れますが、文字列は書き込み時にコピーされるため、次を使用してtstringlistを2番目のtstringlistに割り当てることができます。
t2.assign(t1);
これは文字列を複製しません。コピーオンライトの動作により、tstringlistは文字列のインデックスのようなものです。
于 2012-02-07T11:24:38.057 に答える