Tengo un objeto CustomObject que anula GetHashCode(). Tengo un HashSet, y puedo llamar a agregar con dos objetos distintos que tienen el mismo código hash. Ambos se agregan y más tarde termino con algunos problemas de inserción de base de datos (duplicados de clave primaria) ... El propósito de usar un hashSet se conectó a estas inserciones de base de datos (evitando colisiones de clave).¿Por qué C# hashSet acepta agregar dos objetos con el mismo valor de getHashCode()?
¿Me estoy perdiendo algunas propiedades de HashSet? Incluso cuando intento verificar (.Contains) antes de agregar (.Add), termino agregando hashCode duplicados ...
Si una colisión hash fuera suficiente para que el HashSet considerara dos valores duplicados, sería bastante inútil. Hashes idénticos para valores desiguales son de esperar. – delnan
Bueno, el hash perfecto es un concepto que podría tener sentido – Jerome