C#中的Python解包函数

时间:2013-12-20 15:08:19

标签: c# python arrays string unpack

我正在寻找一种在C#中获取此过程结果的方法。确切地说,我试图根据给定的格式从二进制字符串中解包数据(该方法应该返回一个数组)。有关详细信息,请参阅http://docs.python.org/2/library/struct.html

struct.unpack('!hh', data[2:6])

有没有办法在C#中这样做?

1 个答案:

答案 0 :(得分:6)

我认为BinaryReader就是你想要的。

这样的东西就是等价的(假设data是一个字节数组):

using (var stream = new MemoryStream(data)) {
    using (var reader = new BinaryReader(stream)) {
        stream.Seek(2, SeekOrigin.Begin);

        var value1 = reader.ReadInt16();
        var value2 = reader.ReadInt16();
    }
}

这应该跳过前2个字节,然后将接下来的4个字节加载到两个short变量中。