2011-01-13 10 views
2

Wie würde ich das tun? Ich versuche zu zählen, wenn beide Arrays den gleichen Wert von TRUE/1 bei demselben Index haben. Wie Sie sehen können, verfügt mein Code über mehrere Bit-Arrays und durchläuft jeden von ihnen und vergleicht sie mit einem VergleichArray mit einer anderen Schleife. Es scheint nicht sehr effizient zu sein und ich brauche es.effizient zwei BitArrays der gleichen Länge vergleichen

wo Item1 ist die Anzahl und Item2 ist ein Bitarray.

Antwort

1

Es gibt nicht viel von einer Möglichkeit, dies zu tun, weil sein internes Array nicht leckt, und weil .NET nicht das C++ - Äquivalent von const hat, um externe Änderungen zu verhindern. Vielleicht möchten Sie einfach Ihre eigene Klasse von Grund auf neu erstellen, oder, wenn Sie Lust haben zu hacken, verwenden Sie Reflektion, um das private Feld innerhalb der BitArray zu erhalten.

+0

+1, ja, wenn Bedarf ist wirklich toll dann eigene BitArray Umsetzung schriftlich Weg wäre – VinayC

1

Je nach Anzahl der Elemente kann BitVector32 verwendbar sein. Das wäre einfach ein Int32 Vergleich.

Wenn nicht möglich, müssen Sie die int[], die auf dem privaten Feld von jedem BitArray befindet. Dann vergleichen Sie die int[] von jedem (das ist ein Vergleich von 32 Bits gleichzeitig).

Verwandte Themen