kaffenils Skrevet 11. januar 2008 Del Skrevet 11. januar 2008 Nå har det stoppet helt opp i hodet. Jeg har to byte arrays som begge inneholder åtte elementer. Jeg vil sjekke om disse to inneholder samme verdiene. Jeg kan selvfølgelig lage en metode som intererer gjennom arrayene og sammelinker verdiene en for en, men jeg hadde kanskje håpet at det fantes en eller annen "ByteArrayComparer" klasses eller liknende. Ja, jeg har googlet, men det eneste jeg finner der er at jeg må lage en metode som itererer gjennom arrayene. Er det virkelig den eneste måten? Lenke til kommentar
GeirGrusom Skrevet 11. januar 2008 Del Skrevet 11. januar 2008 Tenker det, men det er ikke mye kode da Regner med at Array.Equals bare sammenligner referansene (hvis array.Equals engang finnes) bool CompareArrays(byte[] a, byte[] b) { for(int i = 0; i < a.Length; i++) if(a[i] != b[i]) return false return true; ] Lenke til kommentar
kaffenils Skrevet 11. januar 2008 Forfatter Del Skrevet 11. januar 2008 Nei, det er ikke mye kode, ville bare høre om det kanskje eksisterte ferdige metoder for det. Metoden min sjekker i tillegg for null referanse og at arrayene er like store. Når guruene på forumet ikke vet om noen annen måte så får det bli på den måten .Equals finnes, men sammenlikner bare referansene som du sier. Takk for svar Lenke til kommentar
The Jackal Skrevet 14. januar 2008 Del Skrevet 14. januar 2008 Tror dette skal funke. Hvorvidt det faktisk er noe kjappere aner jeg ikke riktignok bool CompareArrays(byte[] a, byte[] b) { return ((BitConverter.ToInt64(b, 0) ^ BitConverter.ToInt64(a, 0)) == 0); } Lenke til kommentar
kaffenils Skrevet 14. januar 2008 Forfatter Del Skrevet 14. januar 2008 Takk Skal se på det i morgen når jeg er tilbake på jobb. Lenke til kommentar
GeirGrusom Skrevet 14. januar 2008 Del Skrevet 14. januar 2008 Hehe, tror ikke bitconverter er noe raskere, men er man avhengig av hastighet, kan man gjøre dette: public unsafe bool CompareArrays(byte[] a, byte[] b) { bool ret = false; fixed(long *p_a = (long*)a, long *p_b = (long*)b) { ret *p_a == *p_b; } return ret; } Lenke til kommentar
CronoMan Skrevet 31. januar 2008 Del Skrevet 31. januar 2008 (endret) jeg tror Array.Equals kjører equals på hvert element i tabellene Endret 31. januar 2008 av CronoMan Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå