从字节数组中删除第一个和最后一个字节?
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);
您可以使用 Linq 轻松地做到这一点:
var array = new char[] { '<', '0', '1', '1', '>' };
var trimmedArray = array.Skip( 1 ).Take( array.Count() - 2 ).ToArray();
我正在以字节为单位读取字节数组。数字以 <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);
您可以使用 Linq 轻松地做到这一点:
var array = new char[] { '<', '0', '1', '1', '>' };
var trimmedArray = array.Skip( 1 ).Take( array.Count() - 2 ).ToArray();