从字节数组中获取最后一个字节
本文关键字:字节 获取 最后一个 数组 字节数 | 更新日期: 2023-09-27 18:26:19
我需要从字节数组中读取最后8个字节。现在我是这样做的:
last8 = data.Reverse().Take(8).Reverse();
有更好的方法吗?
使用数组。复制例如:
byte[] data = ...;
byte[] last8 = new byte[8];
Array.Copy(data, data.Length-8, last8, 0, 8);
这个怎么样:
var last8 = data.Skip(data.Length - 8);
将省去反转数组两次的步骤。
C#8的Ranges可能会有所帮助。。。
var bytes = new byte[] { 1, 2, 3, 4, 5 };
byte[] last3 = bytes [^3..];
// last3 contains { 3, 4, 5 }
示例。。。
START END EXAMPLE ALSO KNOWN AS
[^3..] - 3rd back - end { 3, 4, 5 } last 3
[3..] - 3rd - end { 4, 5 } skip 3
[3..^2] - 3rd - 3rd back { }
[..^3] - beginning - 4rd back { 1, 2 } skip last 3
[..3] - beginning - 4rd { 1, 2, 3 } first 3
[..] - beginning - end { 1, 2, 3, 4, 5 } all
您也可以使用data.Skip(data.Count - 8)
(如果您的数据已经枚举,例如Array
或List
)。