Байты записываются в объект MemoryStream, и необходимо получить базовый буфер для сохранения его в файл
MemoryStream ms = new MemoryStream();
// ms.Write(...)
// ms.Write(...)
// etc... some bytes are written to the stream
byte[] data = ms.GetBuffer();
int length = data.Length;
Однако возвращаемое значение data
имеет ms
емкость, а не реальную ms
длину.
Лучше (быстрее, безопаснее, ...) установить емкость ms
на ее длину или выделить data
и скопировать в нее содержимое ms
?