插入缓冲液的有效方法

本文关键字:有效 方法 缓冲 插入 | 更新日期: 2023-09-27 18:36:46

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

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

插入缓冲液的有效方法

滚动你自己的(或搜索现有的库) - 没有什么可以帮助跟踪插入以尽量减少复制字节。

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

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