插入缓冲区的有效方法

Efficient way to insert into buffer

假设我将一个流读入一个缓冲区,并且我想多次插入到这个缓冲区中。有没有我可以调用的一些有效的帮助对象来帮助解决这个问题。假设我想在位置 100 处插入 10 个字节长度,然后在位置 500 处插入 20 个字节长度(插入前 10 个字节后现在为 510)。我所追求的是跟踪多次插入时实际插入的位置(否则我必须将所有地址移动我已经插入的内容)。

我自己动手会很简单,但我想知道我是否在重新发明轮子,这已经包含在某些 .NET 构造中了吗?

自己滚动(或搜索现有库)- 没有任何方法可以帮助跟踪插入以最大程度地减少复制字节。

使用字节数组和 Buffer.BlockCopy 为每次插入分析简单的解决方案,以确保该方法确实不可接受。 (查看 Array.Copy vs Buffer.BlockCopy 选择您喜欢的复制方法)。

优化代码的一个选项 - 而不是复制保持排序的范围列表(如果范围相交,它将变得棘手......)并合并结果一次。