在C#中,我如何截断byte []数组

Dav*_*kes 32 c#

我有一个大小的byte []数组,我想将它截断为一个较小的数组?

我只是想结束.

Hen*_*man 41

数组在C#(.NET)中是固定大小的.

您必须将内容复制到新内容.

byte[] sourceArray = ...
byte[] truncArray = new byte[10];

Array.Copy(sourceArray , truncArray , truncArray.Length);
Run Code Online (Sandbox Code Playgroud)


Luk*_*keH 25

您可以使用Array.Resize,但所有这一切确实是制作原始数组的截断副本,然后用新的数组替换原始数组.


小智 8

    private static void Truncate() {

        byte[] longArray = new byte[] {1,2,3,4,5,6,7,8,9,10};

        Array.Resize(ref longArray, 5);//longArray = {1,2,3,4,5}

        //if you like linq
        byte[] shortArray = longArray.Take(5).ToArray();

    }
Run Code Online (Sandbox Code Playgroud)


Nic*_*ick 6

我通常创建一个扩展方法:

 public static byte[] SubByteArray(this byte[] byteArray, int len)
    {
        byte[] tmp = new byte[len];
        Array.Copy(byteArray, tmp, len);

        return tmp;
    }
Run Code Online (Sandbox Code Playgroud)

可以像这样轻松调用字节数组:

buffer.SubByteArray(len)
Run Code Online (Sandbox Code Playgroud)