Comparer Classe

Definizione

Confronta due oggetti in termini di uguaglianza, dove i confronti tra stringhe prevedono la distinzione tra maiuscole e minuscole.Compares two objects for equivalence, where string comparisons are case-sensitive.

public ref class Comparer sealed : System::Collections::IComparer, System::Runtime::Serialization::ISerializable
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class Comparer : System.Collections.IComparer, System.Runtime.Serialization.ISerializable
type Comparer = class
    interface IComparer
    interface ISerializable
Public NotInheritable Class Comparer
Implements IComparer, ISerializable
Ereditarietà
Comparer
Attributi
Implementazioni

Esempi

Nell'esempio di codice seguente viene illustrato come Compare restituisce valori diversi a seconda delle impostazioni cultura associate al Comparer.The following code example shows how Compare returns different values depending on the culture associated with the Comparer.

using namespace System;
using namespace System::Collections;
using namespace System::Globalization;
int main()
{
   
   // Creates the strings to compare.
   String^ str1 = "llegar";
   String^ str2 = "lugar";
   Console::WriteLine( "Comparing \"{0}\" and \"{1}\" ...", str1, str2 );
   
   // Uses the DefaultInvariant Comparer.
   Console::WriteLine( "   Invariant Comparer: {0}", Comparer::DefaultInvariant->Compare( str1, str2 ) );
   
   // Uses the Comparer based on the culture "es-ES" (Spanish - Spain, international sort).
   Comparer^ myCompIntl = gcnew Comparer( gcnew CultureInfo(  "es-ES",false ) );
   Console::WriteLine( "   International Sort: {0}", myCompIntl->Compare( str1, str2 ) );
   
   // Uses the Comparer based on the culture identifier 0x040A (Spanish - Spain, traditional sort).
   Comparer^ myCompTrad = gcnew Comparer( gcnew CultureInfo( 0x040A,false ) );
   Console::WriteLine( "   Traditional Sort  : {0}", myCompTrad->Compare( str1, str2 ) );
}

/*
This code produces the following output.

Comparing "llegar" and "lugar" ...
   Invariant Comparer: -1
   International Sort: -1
   Traditional Sort  : 1

*/
using System;
using System.Collections;
using System.Globalization;

public class SamplesComparer  {

   public static void Main()  {

      // Creates the strings to compare.
      String str1 = "llegar";
      String str2 = "lugar";
      Console.WriteLine( "Comparing \"{0}\" and \"{1}\" ...", str1, str2 );

      // Uses the DefaultInvariant Comparer.
      Console.WriteLine( "   Invariant Comparer: {0}", Comparer.DefaultInvariant.Compare( str1, str2 ) );

      // Uses the Comparer based on the culture "es-ES" (Spanish - Spain, international sort).
      Comparer myCompIntl = new Comparer( new CultureInfo( "es-ES", false ) );
      Console.WriteLine( "   International Sort: {0}", myCompIntl.Compare( str1, str2 ) );

      // Uses the Comparer based on the culture identifier 0x040A (Spanish - Spain, traditional sort).
      Comparer myCompTrad = new Comparer( new CultureInfo( 0x040A, false ) );
      Console.WriteLine( "   Traditional Sort  : {0}", myCompTrad.Compare( str1, str2 ) );

   }

}

/*
This code produces the following output.

Comparing "llegar" and "lugar" ...
   Invariant Comparer: -1
   International Sort: -1
   Traditional Sort  : 1

*/
Imports System.Collections
Imports System.Globalization

Public Class SamplesComparer

   Public Shared Sub Main()

      ' Creates the strings to compare.
      Dim str1 As [String] = "llegar"
      Dim str2 As [String] = "lugar"
      Console.WriteLine("Comparing ""{0}"" and ""{1}"" ...", str1, str2)

      ' Uses the DefaultInvariant Comparer.
      Console.WriteLine("   Invariant Comparer: {0}", Comparer.DefaultInvariant.Compare(str1, str2))

      ' Uses the Comparer based on the culture "es-ES" (Spanish - Spain, international sort).
      Dim myCompIntl As New Comparer(New CultureInfo("es-ES", False))
      Console.WriteLine("   International Sort: {0}", myCompIntl.Compare(str1, str2))

      ' Uses the Comparer based on the culture identifier 0x040A (Spanish - Spain, traditional sort).
      Dim myCompTrad As New Comparer(New CultureInfo(&H40A, False))
      Console.WriteLine("   Traditional Sort  : {0}", myCompTrad.Compare(str1, str2))

   End Sub

End Class


'This code produces the following output.
'
'Comparing "llegar" and "lugar" ...
'   Invariant Comparer: -1
'   International Sort: -1
'   Traditional Sort  : 1

Commenti

Questa classe rappresenta l'implementazione predefinita dell'interfaccia IComparer.This class is the default implementation of the IComparer interface. La classe CaseInsensitiveComparer è l'implementazione dell'interfaccia IComparer che esegue confronti tra stringhe senza distinzione tra maiuscole e minuscole.The CaseInsensitiveComparer class is the implementation of the IComparer interface that performs case-insensitive string comparisons. System.Collections.Generic.Comparer<T> è l'equivalente generico di questa classe.System.Collections.Generic.Comparer<T> is the generic equivalent of this class.

Le procedure di confronto usano la Thread.CurrentCulture del thread corrente se non diversamente specificato.Comparison procedures use the Thread.CurrentCulture of the current thread unless otherwise specified. I confronti tra stringhe possono avere risultati diversi a seconda delle impostazioni cultura.String comparisons might have different results depending on the culture. Per ulteriori informazioni sui confronti specifici delle impostazioni cultura, vedere lo spazio dei nomi System.Globalization e la globalizzazione e localizzazione.For more information on culture-specific comparisons, see the System.Globalization namespace and Globalization and Localization.

Costruttori

Comparer(CultureInfo)

Inizializza una nuova istanza della classe Comparer usando il CultureInfo specificato.Initializes a new instance of the Comparer class using the specified CultureInfo.

Campi

Default

Rappresenta un'istanza di Comparer associata alla proprietà CurrentCulture del thread corrente.Represents an instance of Comparer that is associated with the CurrentCulture of the current thread. Il campo è di sola lettura.This field is read-only.

DefaultInvariant

Rappresenta un'istanza di Comparer associata a InvariantCulture.Represents an instance of Comparer that is associated with InvariantCulture. Il campo è di sola lettura.This field is read-only.

Metodi

Compare(Object, Object)

Esegue un confronto con distinzione tra maiuscole e minuscole tra due oggetti dello stesso tipo e restituisce un valore che indica se un oggetto è minore, uguale o maggiore dell'altro.Performs a case-sensitive comparison of two objects of the same type and returns a value indicating whether one is less than, equal to, or greater than the other.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetObjectData(SerializationInfo, StreamingContext)

Compila un oggetto SerializationInfo con i dati richiesti per la serializzazione.Populates a SerializationInfo object with the data required for serialization.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Si applica a

Vedi anche