Comparer Klasa

Definicja

Porównuje dwa obiekty pod kątem równoważności, gdzie w porównaniach ciągów jest uwzględniana wielkość liter.

C#
public sealed class Comparer : System.Collections.IComparer
C#
public sealed class Comparer : System.Collections.IComparer, System.Runtime.Serialization.ISerializable
C#
[System.Serializable]
public sealed class Comparer : System.Collections.IComparer, System.Runtime.Serialization.ISerializable
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Comparer : System.Collections.IComparer, System.Runtime.Serialization.ISerializable
Dziedziczenie
Comparer
Atrybuty
Implementuje

Przykłady

Poniższy przykład kodu pokazuje, jak Compare zwraca różne wartości w zależności od kultury skojarzonej z elementem Comparer.

C#
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

*/

Uwagi

Ta klasa jest domyślną implementacją interfejsu IComparer . Klasa to implementacja CaseInsensitiveComparer interfejsu IComparer , który wykonuje porównania ciągów bez uwzględniania wielkości liter. System.Collections.Generic.Comparer<T> jest ogólnym odpowiednikiem tej klasy.

Procedury porównania używają Thread.CurrentCulture bieżącego wątku, chyba że określono inaczej. Porównania ciągów mogą mieć różne wyniki w zależności od kultury. Aby uzyskać więcej informacji na temat porównań specyficznych dla kultury, zobacz System.Globalization przestrzeń nazw i globalizację i lokalizację.

Konstruktory

Comparer(CultureInfo)

Inicjuje Comparer nowe wystąpienie klasy przy użyciu określonego CultureInfoelementu .

Pola

Default

Reprezentuje wystąpienie, Comparer które jest skojarzone z CurrentCulture bieżącym wątkiem. To pole jest tylko do odczytu.

DefaultInvariant

Reprezentuje wystąpienie Comparer , które jest skojarzone z InvariantCulture. To pole jest tylko do odczytu.

Metody

Compare(Object, Object)

Wykonuje porównanie wielkości liter dwóch obiektów tego samego typu i zwraca wartość wskazującą, czy jedna jest mniejsza niż, równa, czy większa niż druga.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetObjectData(SerializationInfo, StreamingContext)
Przestarzałe.

SerializationInfo Wypełnia obiekt danymi wymaganymi do serializacji.

GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Zobacz też