Quel est le meilleur algorithme pour surcharger GetHashCode ?
Quel est le meilleur algorithme pour surcharger GetHashCode ?
Quel est le meilleur algorithme pour surcharger GetHashCode ?
Re: Quel est le meilleur algorithme pour surcharger GetHashCode ?
Je vais généralement avec quelque chose comme l'implémentation donnée dans le *fabuleux* [Effective Java](https://rads.stackoverflow.com/amzn/click/com/0321356683) de Josh Bloch. C'est rapide et crée un hash assez bon, peu susceptible de provoquer des collisions. Choisissez deux nombres premiers différents, par ex. 17 et 23, et faites :
```
public override int GetHashCode()
{
unchecked // Overflow is fine, just wrap
{
int hash = 17;
// Suitable nullity checks etc, of course
hash = hash * 23 + field1.GetHashCode();
hash = hash * 23 + field2.GetHashCode();
hash = hash * 23 + field3.G
```
public override int GetHashCode()
{
unchecked // Overflow is fine, just wrap
{
int hash = 17;
// Suitable nullity checks etc, of course
hash = hash * 23 + field1.GetHashCode();
hash = hash * 23 + field2.GetHashCode();
hash = hash * 23 + field3.G