我有一个像这样的TDictionary<String, TDateTime>
aDict := TDictionary<String, TDateTime>.Create;
try
aDict.Add('Foo', StrToDateTime('2016-10-14 15:00:00'));
aDict.Add('Bar', StrToDateTime('2016-10-14 14:00:00'));
aDict.Add('Baz', StrToDateTime('2016-10-14 13:00:00'));
finally
aDict.Free;
end;如果我像这样循环字典:
for aKey in aDict.Keys do
WriteLn(aKey );产出如下:
Bar
Baz
Foo默认顺序似乎基于字母键,我希望对字典进行排序,从最老的到最新的TDateTime的值。预期产出如下:
Baz
Bar
Foo有什么建议吗?
发布于 2016-10-14 16:07:16
字典是无序的收藏。如果它以任何特定的方式出现,那完全取决于偶然。项目的顺序没有以任何方式定义。
如果希望订购这些项目,请将它们转移到数组(TArray<string>)或列表(TList<string>或TStringList)中,并在那里对它们进行排序。
https://stackoverflow.com/questions/40047246
复制相似问题