public static T[] ReadArray <T>(this BinaryReader reader) where T : struct { int numBytes = (int)reader.ReadInt64(); byte[] result = reader.ReadBytes(numBytes); reader.BaseStream.Position += (0 - numBytes) & 0x07; return(FastStruct <T> .ReadArray(result)); }
public unsafe static T[] ReadArray <T>(this BinaryReader reader) where T : struct { int numBytes = (int)reader.ReadInt64(); byte[] result = reader.ReadBytes(numBytes); fixed(byte *ptr = result) { T[] data = FastStruct <T> .ReadArray((IntPtr)ptr, numBytes); reader.BaseStream.Position += (0 - numBytes) & 0x07; return(data); } }