130 votes

Utilisation du champ d'un objet comme clé générique du dictionnaire

Si je veux utiliser des objets comme clés pour un Dictionnaire, quelles méthodes devrais-je remplacer pour les comparer d'une manière spécifique ?

Supposons que j'ai une classe avec des propriétés :

class Foo {
    public string Name { get; set; }
    public int FooID { get; set; }

    // elided
} 

Et je veux créer un :

Dictionnaire>

Je veux que les objets Foo avec le même FooID soient considérés comme le même groupe. Quelles méthodes devrais-je remplacer dans la classe Foo ?

En résumé : je veux catégoriser les objets Stuff dans des listes, regroupés par des objets Foo. Les objets Stuff auront un FooID pour les lier à leur catégorie.

0voto

Paul Williams Points 7390

Vous pourriez avoir la classe Foo remplacer GetHashCode(), et faire en sorte que la méthode retourne FooID. Cela forcera le dictionnaire à utiliser FooID comme clé de hachage.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X