在C#中追加数组的最有效方法是什么?

69
我正在从一个老式的ActiveX中以双精度浮点数数组的形式获取数据。我最初不知道实际检索到的样本数量的最终值。
当我将它们从系统中提取出来时,在C#中将这些数组合并在一起的最有效方法是什么?

1
这些数组样本的大小是相同的还是不同的? - Constantin
2
这些数组大小都相同,除了最后一个数组。也就是说,有9个包含1000个样本的数组,最后一个数组包含555个样本。 - Huck
11个回答

0

我也遇到了同样的问题,需要添加特定数量而不是整个数组,我的第一个解决方案与Hugo建议的相同。但我的感觉是“低效”的,因为它需要进行多次调整大小。

然后我想起了StringBuilder是容量优化的。接下来我问自己,MemoryStream是否也适用。经过一些尝试,我可以说是的。

MemoryStream从256字节的最小容量开始,并在必要时按其上一容量的两倍增长,如256、512、1024、2048、4096、8192等。

我的下一个问题是,在调整数组大小和复制与使用MemoryStream相比,需要多长时间。使用MemoryStream比数组调整大小和复制快得多。

因此,我认为使用MemoryStream是最有效的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接