Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

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.

  NomDescription
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreCompareToCompare 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érieur à 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) {
        if (obj == null) return 1;

        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.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

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.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft