C# 字节[]缓冲区或引用/指针?在C中#

C# 字节[]缓冲区或引用/指针?在C中#,c#,binary,bytearray,C#,Binary,Bytearray,我有一个原始缓冲区,我需要做另外3个,头部总是前8个字节,身体总是从字节8到?那么脚是从哪来的?直到文件的末尾 我如何从已经存在的缓冲区中创建缓冲区,以便填充身体和脚。另外,如何创建头以使用前16个字节。我假设我没有使用ref或指针 可以使用Array.Copy()将元素从一个数组复制到另一个数组。可以指定源和目标的起点和终点位置 您可能还想签出。尝试使用,与数组操作相比,这将为基本类型提供更快的性能。(为什么?我不知道,但MSDN)您可以使用MemoryStream中的二进制读取器 Syst

我有一个原始缓冲区,我需要做另外3个,头部总是前8个字节,身体总是从字节8到?那么脚是从哪来的?直到文件的末尾

我如何从已经存在的缓冲区中创建缓冲区,以便填充身体和脚。另外,如何创建头以使用前16个字节。我假设我没有使用ref或指针

可以使用Array.Copy()将元素从一个数组复制到另一个数组。可以指定源和目标的起点和终点位置


您可能还想签出。

尝试使用,与数组操作相比,这将为基本类型提供更快的性能。(为什么?我不知道,但MSDN)

您可以使用MemoryStream中的二进制读取器

 System.IO.MemoryStream stm = new System.IO.MemoryStream( buf, 0, buf.Length );
 System.IO.BinaryReader rdr = new System.IO.BinaryReader( stm );

 int bodyLen = xxx;
 byte[] head = rdr.ReadBytes(8)
 byte[] body = rdr.ReadBytes(bodyLen );
 byte[] foot = rdr.ReadBytes(buf.Length-bodylen-8);
看一看