从字节数组中获取最后一个字节

时间:2012-03-02 09:29:06

标签: c# reverse

我需要从字节数组中读取最后8个字节。现在我这样做:

last8 = data.Reverse().Take(8).Reverse();

有没有更好的方法呢?

4 个答案:

答案 0 :(得分:7)

例如使用Array.Copy

byte[] data = ...;
byte[] last8 = new byte[8];
Array.Copy(data, data.Length-8, last8, 0, 8);

答案 1 :(得分:4)

这个怎么样:

var last8 = data.Skip(data.Length - 8);

将保存两次反转数组的步骤。

答案 2 :(得分:1)

您还可以使用data.Skip(data.Count - 8)(如果您的数据已经被枚举 - 例如ArrayList)。

答案 3 :(得分:0)

C# 8 有一个新功能可能会帮助...

var myByteArray = new byte[] {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A };
byte[] last8 = mydata[^8..];   //      => 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A

在上面,我们从“8 from the end”开始,然后走到最后。