private static byte[] ConcatenateArrays(byte[][][] segments)
{
int length = 0;
foreach (byte[][] middleSegments in segments)
{
foreach (byte[] segment in middleSegments)
{
length += segment.Length;
}
}
byte[] concatenated = new byte[length];
int offset = 0;
foreach (byte[][] middleSegments in segments)
{
foreach (byte[] segment in middleSegments)
{
Buffer.BlockCopy(segment, 0, concatenated, offset, segment.Length);
offset += segment.Length;
}
}
return concatenated;
}
}