/// <summary>
/// 把字节List合并为一个字节数组
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public static byte[] MergeMultipleArrays(List<byte[]> list)
{
return MergeMultipleArrays(list.ToArray());
}
/// <summary>
/// 把多个字节数组合并为一个字节数组
/// </summary>
/// <param name="arrays"></param>
/// <returns></returns>
public static byte[] MergeMultipleArrays(byte[][] arrays)
{
byte[] bytesSum = new byte[arrays.Sum(a => a.Length)];
int offset = 0;
foreach (byte[] b in arrays)
{
System.Buffer.BlockCopy(b, 0, bytesSum, offset, b.Length);
offset += b.Length;
}
return bytesSum;
}
应用举例:
static void Main(string[] args)
{
byte[] a = Encoding.UTF8.GetBytes("Hello ");
byte[] b = Encoding.UTF8.GetBytes("World!");
byte[][] arrays = { a, b };
byte[] sum1 = MergeMultipleArrays(arrays);
string s1 = Encoding.UTF8.GetString(sum1);
Console.WriteLine(s1);
List<byte[]> lists = new List<byte[]>();
lists.Add(a);
lists.Add(b);
byte[] sum2 = MergeMultipleArrays(lists);
string s2 = Encoding.UTF8.GetString(sum2);
Console.WriteLine(s2);
}
输出
Hello World!
Hello World!