C#Array调整大小需要更长的时间吗?

Den*_*zil 3 c# arrays

在我的应用程序中,我每帧执行一次System.Array.Resize.最初我将数组设置为最大可能的大小,然后将它们调整为更小的值.在某些情况下,它可能会小很多,在其他情况下,它可能会小一些.在我看来,虽然要调整大小的元素越多,所需的时间就越长.也许我的观察是错误的,这就是我在这里问的原因.

Ada*_*rth 6

它应该是,调整大小涉及将新内存分配到您想要的大小并将旧数组复制到新数组中.数组越大,复制越多.

来自MSDN:

此方法分配具有指定大小的新数组,将旧数组中的元素复制到新数组,然后用新数组替换旧数组.

在不太了解代码的情况下,尝试使用List<T>管理列表和调整大小,以及需要将其提供给Unity时调用list.ToArray();.

这仍然会创建数组并复制它,但每帧只能创建一次.