C#重复数据,在边界上重置

时间:2018-10-08 13:28:06

标签: c# loops byte

我正在尝试将一些重复的数据写入字节数组,如下所示:

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库,但是我仍然不确定这将如何帮助我。

1 个答案:

答案 0 :(得分:3)

您可以检查i是否是要重置计数器的同一if语句中1 MB的倍数:

if (count >= bytes.Length || i % (1024*1024) == 0) count = 0;
相关问题