我正在尝试将一些重复的数据写入字节数组,如下所示:
byte[] bytes = Encoding.ASCII.GetBytes("UNKNOWN");
int count = 0;
for (int i = 0; i < several_MB_worth_of_bytes; i++)
{
output[i] = bytes[count];
count++;
if (count >= bytes.Length) count = 0;
}
这有效,但是,如果我恰好写入了价值1MB的字节,则需要重置count变量,因此1MB边界之后的下一个字节将是字符串中的第一个'U'。这需要在每个MB边界上发生。
我似乎不太清楚处理重置的最佳方法。我已经看过.net的ByteSize
库,但是我仍然不确定这将如何帮助我。
答案 0 :(得分:3)
您可以检查i
是否是要重置计数器的同一if语句中1 MB的倍数:
if (count >= bytes.Length || i % (1024*1024) == 0) count = 0;