85 votes

Comment implémenter l’interface IComparable?

Je remplis un tableau avec des instances d’une classe :

Une fois que j’ai rempli ce tableau, j’aimerais le trier par montants de solde. Pour ce faire, j’aimerais pouvoir vérifier si chaque élément est triable à l’aide de ``.
Je dois le faire en utilisant des interfaces. Jusqu’à présent, j’ai le code suivant:

Mais je ne suis pas sûr que ce soit la bonne solution. Un conseil ?

17voto

Eric Lippert Points 300275

Voulez-vous trier de manière destructive la baie ? Autrement dit, voulez-vous réellement modifier l’ordre des éléments dans le tableau? Ou voulez-vous simplement une liste des articles dans un ordre particulier, sans détruire la commande d’origine?

Je dirais qu’il est presque toujours préférable de faire ce dernier. Envisagez d’utiliser LINQ pour une commande non destructive. (Et envisagez d’utiliser un nom de variable plus significatif que « a ».)

16voto

Lou Franco Points 48823

`` existe déjà dans .NET avec cette définition de CompareTo

Vous n’êtes pas censé créer l’interface - vous êtes censé l’implémenter.

11voto

Matt Greer Points 29401

Une alternative consiste à utiliser LINQ et à ignorer complètement l’implémentation d’IComparable :

7voto

Marc Gravell Points 482669

Il y a déjà ``, mais vous devriez idéalement soutenir les deux et. L’utilisation de l’intégré est généralement une option plus facile., par exemple, acceptera un tel comparateur.

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