我有一个字节数组:
byte[] bytes; // many elements
我需要将其分成X个元素的字节数组子序列。例如,x = 4。
如果bytes.Length不能被X整除,则将0添加到最后一个子序列数组,以便所有子序列的长度必须为X。
Linq可用。
PS:我的尝试
static void Main(string[] args)
{
List<byte> bytes = new List<byte>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
int c = bytes.Count / 4;
for (int i = 0; i <= c; i+=4)
{
int diff = bytes.Count - 4;
if (diff < 0)
{
}
else
{
List<byte> b = bytes.GetRange(i, 4);
}
}
Console.ReadKey();
}
for
循环转换为do .. while
。var chunk = new T[size]; var i = 0; do { chunk[i] = iter.Current; i++; } while (i < size && iter.MoveNext()); yield return chunk;
- hIpPyforeach
重写上面的代码:由于两个相关循环(数据与数组)的存在,它变得混乱;对于一个真正好的例子:Zip
是一个好例子。 - Marc Gravell