gpt4 book ai didi

delphi - TList 的快速复制?

转载 作者:行者123 更新时间:2023-12-03 14:43:43 25 4
gpt4 key购买 nike

有没有快速复制通用 TList 的方法?

Copy.Capacity := List.Count;
for Item in List do
Copy.Add (Item);

非常慢。似乎无法使用 CopyMemory 因为我无法获取内部数组的内存地址(从信息隐藏的角度来看这是显而易见的)。我想念类似的东西

List.Copy (Copy);

它使用内部表示的知识来提高性能。可以吗?

最佳答案

对于通用TList<T>根本不可能实现你想要的功能。那是因为复制 T 的内容可能涉及的不仅仅是简单的内存复制。如果T包含任何托管类型(即字符串、接口(interface)等),那么这些托管对象的引用计数必须递增。

  • 如果您的T确实包含托管类型,那么我怀疑您是否可以比您已有的代码做得更好。
  • 如果您的T不包含任何托管类型,则内存副本是可行的,但您将需要创建自己的类来封装此列表,因为 TList<T>不合适。

关于delphi - TList <T> 的快速复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9479089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com