我需要每16个字节计算一个字节数组中的行数。 我使用之前的方法获取行号,将数组转换为字符串。 但是,无论何时将数组转换为字符串,都会使进程大大超载。 所以我想知道,如何每16字节获取一个字节数组中的行数,但没有转换为字符串。 你有什么想法吗?
string hexString = ByteArrayToHexString(buffer);
int lineCount = CountLinesHexString(hexString); //Sum 32 in 32 characters (16 Bytes).
int expectedLength = lineCount * 16;
public static int CountLinesHexString(string hexStringToCount)
{
var regex = new Regex(@".{32}");
string hexStringLinesOf16 = regex.Replace(hexStringToCount, "$&" + Environment.NewLine);
int length = hexStringLinesOf16.Length;
int count = 0;
for (int i = 0; i < length; i++)
{
if (hexStringLinesOf16[i] == '\n') count++;
}
return count + 1;
}
答案 0 :(得分:1)
因为我理解你的问题所以不需要转换为字符串就这样做:
int bufferLength=buffer.Length;
int lineCount=(bufferLength + 15) / 16;
全部完成
感谢您的评论