4 EYLÃœL 2008, PERÅžEMBE
İki bayt dizi karşılaştırılması .NET
Nasıl bu kadar hızlı yapabilirim?
Elbette bunu yapabilirim:
static bool ByteArrayCompare(byte[] a1, byte[] a2)
{
if (a1.Length != a2.Length)
return false;
for (int i=0; i<a1.Length; i )
if (a1[i]!=a2[i])
return false;
return true;
}
Ama BCL bir işlevi, ya da bunu yapmak için son derece optimize edilmiş bazı kanıtlanmış yolu da arıyorum.
java.util.Arrays.equals((sbyte[])(Array)a1, (sbyte[])(Array)a2);
güzel çalışıyor ama 64 için çalışacak gibi görünmüyor.
Süper-hızlı yanıt here not.
CEVAP
4 EYLÃœL 2008, PERÅžEMBE
Enumerable.SequenceEqual yöntemi kullanabilirsiniz.
using System;
using System.Linq;
...
var a1 = new int[] { 1, 2, 3};
var a2 = new int[] { 1, 2, 3};
var a3 = new int[] { 1, 2, 4};
var x = a1.SequenceEqual(a2); // true
var y = a1.SequenceEqual(a3); // false
Eğer kullanabilirsiniz .Nedense NET 3.5, yöntem TAMAM.< / ^ br . Derleyici\çevre performansı hakkında endişelenmenize gerek yok bu yüzden döngü optimize çalıştırma.
Bunu PaylaÅŸ:
En iyi C bayt bir dizi halinde büyük b...
Java seri hale getirilebilir Dizi Bayt...
dönüştürme bitmap dizi bayt için Java...
Kolay Yolu Arada Ä°ki Bayt Dizi...
Java dizi bayt tamsayı...