У меня есть массив всех байтов в файле.
{ 0xA0, 0x00, 0xFF, 0xFF, 0xA0, 0x10, 0x01, 0x00, 0x10, 0x32, 0x0D, 0x00, 0x48, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x6F, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6C, 0x00, 0x64, 0x00, 0x21, 0x00, 0xF0, 0xF0 }
У меня также есть функция, которая читает определенную часть файла и перемещает местоположение дальше вперед. (Как и BinaryReader.ReadX()
за исключением массива.
private static byte[] readBytes(int length)
{
cursorLocation += length;
return new ArraySegment<byte>(bytes, cursorLocation-length, length).ToArray();
}
Однако, когда я пытаюсь проверить, является ли определенный раздел байтов одинаковым, это, кажется, не работает. Например, это:
byte[] startup = readBytes(4);
if (startup == new byte[] { 0xA0, 0x00, 0xFF, 0xFF })
{
Console.WriteLine("Matches");
} else
{
Console.WriteLine("Does not match.");
}
возвращает «Не соответствует» вместо «Соответствует». Я также пытался сравнить каждый элемент массива в строке, но это также не работает. Выводить их в виде строки так:
Console.WriteLine(startup[0]);
Console.WriteLine(startup[1]);
Console.WriteLine(startup[2]);
Console.WriteLine(startup[3]);
возвращается, как и ожидалось:
160
0
255
255
Я действительно не уверен, что не так, и любая помощь будет принята с благодарностью. Большое спасибо!