C # equivalente de Java IdentityHashMap
-
22-07-2019 - |
Pregunta
Hasta donde yo sé, no hay un equivalente directo en C #. Mi idea actual es usar un Diccionario con un IEqualityComparer personalizado, que verifica la igualdad de referencia.
Sin embargo, esto parece perder la ventaja obtenida con el hash. ¿Hay alguna manera de obtener un hashcode individual de cada objeto diferente? ¿O es esto imposible y debería usar algún otro enfoque?
Solución
Puede usar RuntimeHelpers.GetHashCode (objeto)
que llama a object.GetHashCode ()
de forma no virtual: este es el equivalente de System.identityHashcode
en Java. Creo que eso es lo que buscas. Por lo tanto, su IEqualityComparer
solo lo usaría para hashing y object.ReferenceEquals
para igualdad.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow