jpf*_*ius 9 delphi collections delphi-xe
有没有快速的方法来复制通用TList?
Copy.Capacity := List.Count;
for Item in List do
Copy.Add (Item);
Run Code Online (Sandbox Code Playgroud)
非常慢 似乎没有办法使用,CopyMemory因为我无法获得内部数组的内存地址(从信息隐藏的角度来看很明显).我错过了类似的东西
List.Copy (Copy);
Run Code Online (Sandbox Code Playgroud)
它使用内部表示的知识来提高性能.可以吗?
对于泛型TList<T>,根本无法实现您想要的功能.那是因为复制内容T可能涉及多个简单的内存副本.如果T包含任何托管类型(即字符串,接口等),则必须递增对这些托管对象的引用计数.
T确实包含托管类型,那么我怀疑你能比你已经拥有的代码做得更好.T不包含任何托管类型,那么内存副本是可行的,但您需要创建自己的类来封装此列表,因为这TList<T>是不合适的.| 归档时间: |
|
| 查看次数: |
2775 次 |
| 最近记录: |