public ArraySegment<byte>[] ReadBlocksCompressed(uint Block, int Count)
{
var List = new ArraySegment<byte>[Count];
var BlockStart = this.Blocks[Block + 0].Position;
var BlockEnd = this.Blocks[Block + Count].Position;
var BlockLength = BlockEnd - BlockStart;
Stream.Position = BlockStart;
var Data = Stream.ReadBytes((int)BlockLength);
for (int n = 0; n < Count; n++)
{
var Start = (int)(this.Blocks[Block + n + 0].Position - BlockStart);
var End = (int)(this.Blocks[Block + n + 1].Position - BlockStart);
List[n] = new ArraySegment<byte>(Data, Start, End - Start);
}
return List;
}