调整阵列性能?

Noa*_*oth 5 .net c# arrays performance resize

我想知道不断调整字节数组的大小会对性能产生重大影响.我正在向一个类添加数据,如果该类已经包含该数据类型,我需要将它添加到现有的字节数组中,这意味着我需要调整它的大小.问题是我有一些数据类型将批量添加,这意味着可能会发生多个数组调整大小.

这会对性能产生巨大影响吗?这个课程对性能非常重要.

如果确实如此,那么我可能需要进行设计改造.

Bro*_*ass 10

如果需要调整大小,那么您应该使用List<byte>替代.无法调整数组的大小,因此您必须创建一个全新的数组,然后在添加其他内容之前将旧内容复制到新数组中(Array.Resize如果这就是您所指的内容).

List<T> 在内部使用数组,但会优化调整大小,因此您不必处理它.

基本上一旦内部阵列已满并且添加了新内容,List<T>内部数组大小就会翻倍,因此调整大小实际上很少发生 - 如果你直接调整阵列大小,你将要么采用类似的策略并保持"尺寸计数器"或在任何添加内容时调整性能成本.