Ну, вы могли бы использовать:
public static bool ByteArraysEqual(byte[] b1, byte[] b2)
{
if (b1 == b2) return true;
if (b1 == null || b2 == null) return false;
if (b1.Length != b2.Length) return false;
for (int i=0; i < b1.Length; i++)
{
if (b1[i] != b2[i]) return false;
}
return true;
}
(я обычно использую фигурные скобки для всего, но я думал, что экспериментировать с этим стилем макет только для изменения ...)
Это несколько оптимизаций, которые SequenceEqual
не может (или не выполняет), - например, проверка длины фронта. Прямой доступ к массиву также будет немного более эффективным, чем использование счетчика.
Правда, это вряд ли сделает значительную разницу в большинстве случаев ...
Вы можете возможно сделать это быстрее в неуправляемом коде, что делает его сравнить 32 или 64 бита, в то время, вместо 8 - но я не хотел бы кодировать это на лету.
Дубликат http://stackoverflow.com/questions/43289/ – Hafthor