Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Interfaccia IComparable

Definisce un metodo di confronto specifico generalizzato che un tipo di valore o una classe implementa per ordinare o ordinare le relative istanze.

Spazio dei nomi:  System
Assembly:  mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)]
public interface IComparable

Il tipo IComparable espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreCompareToConfronta l'istanza corrente con un altro oggetto dello stesso tipo e restituisce un numero intero che indica se l'istanza corrente precede, seguenti, oppure si trova nella stessa posizione di un altro oggetto.
In alto

Questa interfaccia viene implementata dai tipi dei cui valori possono essere ordinati o ordinati. È necessario che i tipi di implementazione di definire un singolo metodo, CompareTo(Object), che indica se la posizione dell'istanza corrente di viene prima, quindi, o lo stesso di un secondo oggetto dello stesso tipo. l'istanza IComparable l'implementazione viene chiamata automaticamente con metodi come Array.Sort e ArrayList.Sort.

L'implementazione di CompareTo(Object) il metodo deve restituire Int32 che in uno dei tre valori, come illustrato nella tabella seguente.

Value

significato

È minore di zero

L'istanza corrente precede l'oggetto specificato dal CompareTo metodo specificato.

zero

Questa istanza corrente si trova nella stessa posizione dell'oggetto specificato da CompareTo metodo.

Maggiore di zero

Questa istanza corrente seguente l'oggetto specificato dal CompareTo metodo specificato.

Tutti i tipi numerici (ad esempio Int32 e Double) utilizzo IComparable, analogamente a String, Chare DateTime. I tipi personalizzati devono inoltre fornire la propria implementazione di IComparable per abilitare le istanze di oggetti da ordinare o ordinare.

Il seguente esempio viene illustrata l'implementazione di IComparable e il requisito CompareTo metodo.


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

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

.NET per applicazioni Windows Phone

Supportato in: 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 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft