C# 插入缓冲区的有效方法
假设我将一个流读入一个缓冲区,我想在这个缓冲区中进行多次插入。是否有一些有效的帮助对象,我可以调用,以帮助这一点。比如说,如果我想在位置100处插入10个字节的长度,然后在位置500处插入20个字节的长度(插入前10个字节后现在是510)。我所追求的是在多次插入时跟踪实际插入的位置(否则我必须根据我已经插入的内容移动所有地址) 滚动我自己的程序会很简单,但我想知道我是否在这里重新发明轮子,这已经包含在一些.NET构造中了?滚动你自己的程序(或搜索现有的程序库)-没有什么可以帮助跟踪插入以最小化周围的复制字节 使用字节数组和C# 插入缓冲区的有效方法,c#,.net,stream,buffer,C#,.net,Stream,Buffer,假设我将一个流读入一个缓冲区,我想在这个缓冲区中进行多次插入。是否有一些有效的帮助对象,我可以调用,以帮助这一点。比如说,如果我想在位置100处插入10个字节的长度,然后在位置500处插入20个字节的长度(插入前10个字节后现在是510)。我所追求的是在多次插入时跟踪实际插入的位置(否则我必须根据我已经插入的内容移动所有地址) 滚动我自己的程序会很简单,但我想知道我是否在这里重新发明轮子,这已经包含在一些.NET构造中了?滚动你自己的程序(或搜索现有的程序库)-没有什么可以帮助跟踪插入以最小化周
Buffer.BlockCopy
为每次插入配置简单的解决方案,以确保该方法确实不可接受。(签出以选择您喜欢的复制方法)
一个优化代码的选项是,不复制保持范围排序列表(如果范围相交,则会变得棘手…)并合并一次结果 插入通常由
List
和类似的结构来处理,您尝试过其中一种吗?您好,您的最后一段,我想您正在解释我在第一段最后一句中的意思。Niave的方法是为每个新插入继续进行大复制,而不是批量处理所有插入并按顺序进行(排序)。我不需要担心相交的范围,看起来我将不得不自己滚动,这应该不难,但我想确定已经没有什么了