public byte ReadByte(long offset) { var localOffset = GetLocalOffset((uint)offset); var segment = segments[GetSegmentNo((uint)offset)]; return Marshal.ReadByte(segment + localOffset); }