Domanda

Per quanto ne so, non esiste un equivalente diretto in C #. La mia idea attuale è quella di utilizzare un dizionario con un IEqualityComparer personalizzato, che controlla l'uguaglianza di riferimento.

Tuttavia, questo sembra perdere il vantaggio ottenuto dall'hashing. C'è un modo per ottenere un hashcode individuale da ogni oggetto diverso? O è impossibile e dovrei usare un altro approccio?

È stato utile?

Soluzione

Puoi utilizzare RuntimeHelpers.GetHashCode (object) che chiama object.GetHashCode () non virtualmente - questo è l'equivalente di System.identityHashcode in Java. Penso che sia quello che stai cercando. Quindi il tuo IEqualityComparer lo userebbe solo per hashing e object.ReferenceEquals per uguaglianza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top