【发布时间】:2016-10-22 22:23:20
【问题描述】:
我想创建一个表,每行包含一个整数和一个字符串。该表应按整数排序。最终目标是提取具有最小关联整数的“n”个字符串。
TStringlist 不太正确,因为它只是一个字符串。它们有名称-值对,但它们的排序顺序错误——我想要值-名称,按值排序。 TDictionary 未排序且无法排序(除了按哈希排序)
我想我可以将整数格式化为一个足够长的字符串,以容纳带前导零的最大整数,并将其连接到 TStringList 中其余字符串数据的开头,但这看起来很难看。有没有更优雅的方法来实现这个表,按整数部分排序?
【问题讨论】:
-
您可以切换到使用记录类型,并使用这些记录的 TList 并使用自定义比较器进行排序。或者使用 TStringList,将整数存储在对象中,并使用自定义排序按这些整数而不是字符串排序。 (在 TStringList.Objects 中存储整数的示例是 here;参见第二个代码 sn-p。)
-
不要害怕定义类型。仅仅因为您拥有 RAD 工具,您就不必拘泥于库中的类型。
-
@KenWhite TList
适用于很少更改的数据。也许他最好坚持使用双链表。取决于工作模式