Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

IComparable, interface

Définit une méthode de comparaison généralisée spécifique au type qu'un type valeur ou une classe implémente pour créer ou trier ses instances.

Espace de noms :  System
Assembly :  mscorlib (dans mscorlib.dll)
[ComVisibleAttribute(true)]
public interface IComparable

Le type IComparable expose les membres suivants.

  Nom Description
Méthode publique Pris en charge par XNA Framework CompareTo Compare l'instance actuelle avec un autre objet du même type et retourne un entier qui indique si l'instance actuelle précède ou suit un autre objet ou se trouve à la même position dans l'ordre de tri.
Début

L'interface est implémentée par les types dont les valeurs peuvent être ordonnées ou triées. Les types de l'implémentation définissent une méthode unique, CompareTo(Object), indiquant la position de l'instance actuelle dans l'ordre de tri : avant, après ou au même niveau qu'un deuxième objet du même type. L'implémentation IComparable de l'instance est appelée automatiquement par les méthodes telles que Array.Sort et ArrayList.Sort.

L'implémentation de la méthode CompareTo(Object) doit retourner un Int32 qui prend une valeur parmi trois, comme indiqué dans le tableau suivant.

Valeur

Signification

Inférieure à zéro

L'instance actuelle précède l'objet spécifié par la méthode CompareTo dans l'ordre de tri.

Zéro

Cette instance actuelle se produit dans la même position dans l'ordre de tri que l'objet spécifié par la méthode CompareTo.

Supérieure à zéro

Cette instance actuelle suit l'objet spécifié par la méthode CompareTo dans l'ordre de tri.

Tous les types numériques (tels que Int32 et Double) implémentent IComparable, au même titre que String, Char et DateTime. Les types personnalisés doivent également fournir leur propre implémentation de IComparable pour permettre aux instances d'objet d'être ordonnées ou triées.

L'exemple suivant illustre l'implémentation de IComparable et de la méthode CompareTo requise :


using System;
using System.Collections;

public class Temperature : IComparable 
{
    // The temperature value
    protected double temperatureF;

    public int CompareTo(object obj) {
        Temperature otherTemperature = obj as Temperature;
        if (otherTemperature != null) 
            return this.temperatureF.CompareTo(otherTemperature.temperatureF);
        else
           throw new ArgumentException("Object is not a Temperature");
    }

    public double Fahrenheit 
    {
        get 
        {
            return this.temperatureF;
        }
        set {
            this.temperatureF = value;
        }
    }

    public double Celsius 
    {
        get 
        {
            return (this.temperatureF - 32) * (5.0/9);
        }
        set 
        {
            this.temperatureF = (value * 9.0/5) + 32;
        }
    }
}

public class CompareTemperatures
{
   public static void Main()
   {
      ArrayList temperatures = new ArrayList();
      // Initialize random number generator.
      Random rnd = new Random();

      // Generate 10 temperatures between 0 and 100 randomly.
      for (int ctr = 1; ctr <= 10; ctr++)
      {
         int degrees = rnd.Next(0, 100);
         Temperature temp = new Temperature();
         temp.Fahrenheit = degrees;
         temperatures.Add(temp);   
      }

      // Sort ArrayList.
      temperatures.Sort();

      foreach (Temperature temp in temperatures)
         Console.WriteLine(temp.Fahrenheit);

   }
}
// The example displays the following output to the console (individual
// values may vary because they are randomly generated):
//       2
//       7
//       16
//       17
//       31
//       37
//       58
//       66
//       72
//       95


.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ