我正在以字节读取字节数组。这些数字以<uint16>
格式发送,包括'&lt;'和'&gt;'符号,以二进制格式00111100 XXXXXXXX XXXXXXXX 00111110
传输,其中'X'构成16位无符号整数。
我想删除'&lt;'和'&gt;'字符,始终是第一个和最后一个字节。这将允许我将16位unsigned int从binary转换为int。
最干净的方法是什么?
答案 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);
答案 1 :(得分:2)
使用Linq可以做到这一点:
var array = new char[] { '<', '0', '1', '1', '>' };
var trimmedArray = array.Skip( 1 ).Take( array.Count() - 2 ).ToArray();