假设我将一个流读入缓冲区,我想在此缓冲区中进行多次插入。是否有一些有效的帮助对象我可以调用来帮助解决这个问题。假设我想在位置100处插入10个字节的长度,然后在位置500处插入20个字节的长度(在插入前10个字节后现在将为510)。我所追求的是在多次插入时跟踪插入的实际位置(否则我必须通过我已经插入的内容移动所有地址)。
滚动我自己很简单,但我想知道我是否在这里重新发明轮子,这已经包含在某些.NET构造中了?
答案 0 :(得分:0)
滚动自己(或搜索现有的库) - 没有任何东西可以帮助跟踪插入以最小化复制字节。
为每个插入配置包含字节数组和Buffer.BlockCopy
的直接解决方案,以确保该方法确实不可接受。 (查看Array.Copy vs Buffer.BlockCopy以选择您喜欢的复制方法。)
优化代码的一个选项 - 而不是复制保持排序的范围列表(如果范围相交将变得棘手......)并合并一次结果。