在我的程序中,我有一堆不断增长的数组,其中一个新元素一个一个地增长到数组的末尾。我发现列表是我程序关键部分的速度瓶颈,因为与数组相比,它们的访问时间较慢——切换到数组后,性能大大提高到可接受的水平。因此,为了增加数组,我正在使用 Array.Resize。这很有效,因为我的实现将数组大小限制为大约 20 个元素,因此 Array.Resize 的 O(N) 性能是有限的。
但如果有一种方法可以在末尾将数组增加一个元素而不必使用 Array.Resize 就更好了;我相信它会将旧数组复制到新大小的数组。
所以我的问题是,是否有一种更有效的方法可以在不使用 List 或 Array.Resize 的情况下将一个元素添加到数组的末尾?
最佳答案
List
与数组一样具有恒定的时间访问权限。对于“不断增长的数组”,您确实应该使用 List
。
当您知道您可能要向数组支持的结构中添加元素时,您不想一次添加一个新的大小。通常,最好在数组填满时将其大小加倍来增大数组。
关于C# 在末尾将数组增加一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2272078/