Is there a library for C# that allows similar functionality to python's struct
from the standard library?
One can emulate the struct library quite closely with real aligned structs. But I didn't find yet any way to directly control the endianess in C#'s structs (the C#'s structs seems to be geared more towards COM interop, and less toward general purpose binary packing).
The closest equivalent would probably be to use
BinaryWriter
writing into aMemoryStream
, orBitConverter
for a one-off conversion of a single value into a byte array.If you want to control the endianness of that, you can use my EndianBinaryWriter/EndianBitConverter from MiscUtil. One extra feature of my
EndianBitConverter
is that you can convert into a specific portion of an existing array, which would help you if you wanted to portstruct.pack
yourself.