在C#中,可以使用以下方法将一个byte数组拆分为多个byte数组:
public static List<byte[]> SplitByteArray(byte[] source, int chunkSize)
{
List<byte[]> result = new List<byte[]>();
int count = (int)Math.Ceiling(source.Length / (double)chunkSize);
for (int i = 0; i< count; i++)
{
byte[] chunk = new byte[chunkSize];
int offset = i * chunkSize;
int remaining = source.Length - offset;
int size = Math.Min(chunkSize, remaining);
Array.Copy(source, offset, chunk, 0, size);
result.Add(chunk);
}
return result;
}
这个方法接受一个byte数组和一个chunkSize作为参数,并返回一个包含多个byte数组的List。它将原始byte数组分成多个大小为chunkSize的子数组,并将它们添加到结果列表中。最后,它返回结果列表。
例如,如果您有一个byte数组,如下所示:
byte[] source = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
您可以使用SplitByteArray方法将其拆分为大小为3的子数组,如下所示:
List<byte[]> result = SplitByteArray(source, 3);
这将返回一个包含三个byte数组的List,每个数组的大小为3。第一个数组将包含1、2和3,第二个数组将包含4、5和6,第三个数组将包含7、8和9。最后一个数组将包含10。
领取专属 10元无门槛券
手把手带您无忧上云