Junior — Middle
Quelles étapes doivent être suivies pour utiliser une classe personnalisée comme clé dans une collection de type dictionnaire?
sobes.tech IA
Réponse de l'IA
Pour utiliser une classe personnalisée comme clé dans un dictionnaire (Dictionary<TKey, TValue>) en C#, il est nécessaire d'assurer une comparaison correcte des clés et le calcul de leurs codes de hachage. Pour cela, vous devez :
- Redéfinir la méthode
Equals(object obj)pour qu'elle compare correctement les objets de votre classe par leurs champs significatifs. - Redéfinir la méthode
GetHashCode()pour que les objets considérés comme égaux aient le même code de hachage.
Exemple :
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override bool Equals(object obj)
{
if (obj is Person other)
{
return Name == other.Name && Age == other.Age;
}
return false;
}
public override int GetHashCode()
{
return HashCode.Combine(Name, Age);
}
}
Alternativement, vous pouvez implémenter l'interface IEqualityComparer<T> et la passer au constructeur du dictionnaire si vous ne souhaitez pas modifier la classe elle-même.