如何拆分字节[]

Eri*_*ric 1 .net c#

我需要拆分一个字节[].

我在原始byte []中有一些数据,如下所示:

byte[] m_B = new byte[] { 0x01, 0x02, 0x03, 0xc0, 0x04, 0x05, 0x06, 0xc0, 0x07, 0x08, 0x09 };
Run Code Online (Sandbox Code Playgroud)

如何分割字节[]到处"0xc0"存在?

dri*_*iis 6

只需枚举缓冲区并在到达要拆分的字节时返回子集:

IEnumerable<byte[]> Split(byte splitByte, byte[] buffer) 
{
    List<byte> bytes = new List<byte>();
    foreach(byte b in buffer) 
    {
        if (b != splitByte)
            bytes.Add(b);
        else
        {
            yield return bytes.ToArray();
            bytes.Clear();
        }
    }
    yield return bytes.ToArray();
}
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用`ArraySegment <byte>`代替.这意味着你不必复制整个地方的字节. (3认同)