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

时间:2016-02-23 10:55:35

标签: c# binary byte bytearray

我正在以字节读取字节数组。这些数字以<uint16>格式发送,包括'&lt;'和'&gt;'符号,以二进制格式00111100 XXXXXXXX XXXXXXXX 00111110传输,其中'X'构成16位无符号整数。

我想删除'&lt;'和'&gt;'字符,始终是第一个和最后一个字节。这将允许我将16位unsigned int从binary转换为int。

最干净的方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以使用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

答案 1 :(得分:2)

使用Linq可以做到这一点:

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