C# 在末尾将数组增加一个元素

标签 c# arrays dynamic-arrays

在我的程序中,我有一堆不断增长的数组,其中一个新元素一个一个地增长到数组的末尾。我发现列表是我程序关键部分的速度瓶颈,因为与数组相比,它们的访问时间较慢——切换到数组后,性能大大提高到可接受的水平。因此,为了增加数组,我正在使用 Array.Resize。这很有效,因为我的实现将数组大小限制为大约 20 个元素,因此 Array.Resize 的 O(N) 性能是有限的。

但如果有一种方法可以在末尾将数组增加一个元素而不必使用 Array.Resize 就更好了;我相信它会将旧数组复制到新大小的数组。

所以我的问题是,是否有一种更有效的方法可以在不使用 List 或 Array.Resize 的情况下将一个元素添加到数组的末尾?

最佳答案

List 与数组一样具有恒定的时间访问权限。对于“不断增长的数组”,您确实应该使用 List

当您知道您可能要向数组支持的结构中添加元素时,您不想一次添加一个新的大小。通常,最好在数组填满时将其大小加倍来增大数组。

关于C# 在末尾将数组增加一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2272078/

相关文章:

c# - 将文件添加到 Flurl 多部分 POST 请求时 IFormFileCollection 为空

c - 修改C函数中的指针数组

C - 检测到堆损坏

c# - 如何在 Visual Studio 中调试具有类库输出类型的项目?

c# - 将我的逻辑放在事件处理程序中还是放在 MVVM 的 setter 中更好(Xamarin `Picker` `SelectedItem` 怪癖)

c# - 现代化 'Hand Rolled' 数据访问库

c - c中的两个函数使用相同的指针

javascript - 打印对象数组的整个路径

c++ - 指向结构的动态指针数组在成员变量赋值时抛出 SIGSEGV

C++ 动态数组输入