我有一个问题。
我想拆分数组。
像这样。public static byte[][] Split(byte[] arr, byte keyword)
{
}
byte[] arr = {0x11, 0x22, 0x33, 0x00, 0x11, 0x22, 0x00, 0x11};
var result = Split(arr, 0x00);
结果:
{0x11, 0x22, 0x33}
{0x11, 0x22}
{0x11}
我如何编程?
答案 0 :(得分:1)
这是一个快速的解决方案。我希望能有所帮助。
public static byte[][] Split(byte[] arr, byte keyword)
{
var result = new List<List<byte>>();
var piece = new List<byte>();
foreach (var b in arr)
{
if (b != keyword)
{
piece.Add(b);
}
else
{
result.Add(piece);
piece = new List<byte>();
}
}
result.Add(piece);
return ToArrayOfArray(result);
}
public static T[][] ToArrayOfArray<T>(List<List<T>> list)
{
var res = new T[list.Count][];
for (int i = 0; i < list.Count; i++)
{
res[i] = list[i].ToArray();
}
return res;
}