这是一个理论性问题,旨在生成Delphi中不同数据存储方式的优缺点的查找列表。
假设我们有一个记录:
type
TMyRecord = record
X,Y,Z: Single;
IsValid: Boolean;
end;
存储此类记录数组的基本选项是:
array of TMyRecord;
TList
具有getter / setter的自定义后代TList<TMyRecord>;
我对#1与#3比较特别感兴趣,两者之间的差异有多少,尤其是在性能方面。
TList<T>
优点:
TList<T>
缺点:
TList<T>[i]
实际上返回其元素的副本。所以你不能写这样的东西TList<TMyRec>[idx].SomeField := foo
。相反,您必须使用临时变量。数组显然允许这样的表达。 David Heffernan提到TList<T>.List
消除了此缺点。但是,它仅出现在XE3中我自己编写了一个TRecordList<T>
类,将项目作为指针进行操作(就像经典的TList一样)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句