【发布时间】:2014-01-13 09:58:58
【问题描述】:
我经常发现我需要“调整”TStringList 的大小以恰好容纳 N 个元素,或者向列表中添加额外的空字符串,或者删除不必要的。
在 C++ STL 容器上,我可以使用 resize 方法,但由于它似乎不存在,我通常会这样做(警告:伪代码!)。
list.beginUpdate;
while list.Count < requiredSize do
begin
list.add('');
end;
while list.Count > requiredSize do
begin
list.delete(list.count-1);
end;
list.endUpdate;
有没有我忽略的更简单的方法?
【问题讨论】:
-
为什么不改用
TList<String>? -
我不记得曾经调整字符串列表的大小以恰好容纳 N 个元素,所以我想知道您的用例吗?也许其他数据结构更适合您的需求。
-
为什么需要调整列表大小?这是一个重要的问题,因为它对最佳答案有重大影响。例如。因为其他代码需要恰好 N 个元素而调整大小与在知道要保存多少个字符串的情况下调整大小以避免极大列表的冗余内存开销大不相同。
-
@CraigYoung Resizing 因为我有一个必须显示 X 项的可视组件(例如 TValueListEditor)。
标签: delphi tstringlist