breve domandaHashing un array in C#
Come implementare GetHashCode
per un Array
.
dettagli
Ho un oggetto che sostituisce Equals
, controllando che:
this.array[n] == otherObject.array[n]
per tutti n
in array
.
Naturalmente dovrei implementare il complementare GetHashCode
. Mi chiedevo se c'è NET modo per fare questo, o se devo realizzare il mio, qualcosa come
hash = hash^array[n]
Chiarimento
mio oggetto contiene un array, e sono interessati a GetHashCode per gli elementi dell'array. Il mio codice per l'equivalenza degli array è solo per esempio - come dice la mia domanda ma forse non ero chiaro, sono interessato a GetHashCode
(non Equals
). Dico che naturalmente dovrei implementare il complementare GetHashCode
perché è un requisito di .NET implementarlo una volta che Equals
viene sovrascritto (per Dictionary
ecc. Per funzionare correttamente). Grazie.
Dai un'occhiata alla risposta pubblicata [qui] (http://stackoverflow.com/a/7244729/833070). In altre parole, è meglio implementare la propria variazione o utilizzare un altro strumento, non è possibile utilizzare 'GetHashCode()' o 'Equals()' per una matrice – Draken
Perché non fare 'this.array [n]. Uguale (otherObject.array [n]) 'per' n'? –
Se si desidera confrontare due array per l'uguaglianza, è possibile utilizzare l'estensione 'SequenceEqual' –