从字节数组中删除第一个和最后一个字节?

Remove first and last bytes from byte array?

我正在以字节为单位读取字节数组。数字以 <uint16> 格式发送,包括“<”和“>”符号,以二进制格式 00111100 XXXXXXXX XXXXXXXX 00111110 传输,其中“X”构成 16 位无符号整数。

我想删除“<”和“>”字符,它们始终是第一个和最后一个字节。这将允许我将 16 位无符号整数从二进制转换为整数。

最干净的方法是什么?

您可以使用 Array.Copy 将一个数组的一部分复制到另一个数组中:

    var source = new int[] { 0, 1, 2, 3, 4 };

    var sourceStartIndex = 1;
    var destinationLength = source.Length - 2;
    var destinationStartIndex = 0;

    var destination = new int[destinationLength];

    Array.Copy(source, sourceStartIndex, destination, destinationStartIndex, destinationLength);

https://dotnetfiddle.net/D0L4XP

您可以使用 Linq 轻松地做到这一点:

var array = new char[] { '<', '0', '1', '1', '>' };
var trimmedArray = array.Skip( 1 ).Take( array.Count() - 2 ).ToArray();