Прочитать на английском

Поделиться через


Comparer Класс

Определение

Проверяет равенство двух объектов с учетом регистра строк.

public sealed class Comparer : System.Collections.IComparer
public sealed class Comparer : System.Collections.IComparer, System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class Comparer : System.Collections.IComparer, System.Runtime.Serialization.ISerializable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Comparer : System.Collections.IComparer, System.Runtime.Serialization.ISerializable
Наследование
Comparer
Атрибуты
Реализации

Примеры

В следующем примере кода показано, как Compare возвращает различные значения в зависимости от языка и региональных параметров, связанных с Comparer.

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

*/

Комментарии

Этот класс является реализацией интерфейса по умолчанию IComparer . Класс CaseInsensitiveComparer — это реализация IComparer интерфейса, который выполняет сравнение строк без учета регистра. System.Collections.Generic.Comparer<T> — универсальный эквивалент этого класса.

В процедурах сравнения используется Thread.CurrentCulture текущий поток, если не указано иное. Сравнение строк может иметь разные результаты в зависимости от языка и региональных параметров. Дополнительные сведения о сравнениях для конкретного языка и региональных параметров см. в System.Globalization разделах Пространство имен и Глобализация и локализация.

Конструкторы

Comparer(CultureInfo)

Инициализирует новый экземпляр класса Comparer с использованием указанного объекта CultureInfo.

Поля

Default

Предоставляет экземпляр класса Comparer, который связан со свойством CurrentCulture текущего потока. Это поле доступно только для чтения.

DefaultInvariant

Представляет экземпляр класса Comparer, который связан со свойством InvariantCulture. Это поле доступно только для чтения.

Методы

Compare(Object, Object)

Выполняет сравнение двух объектов одного типа с учетом регистра и возвращает значение, которое показывает, в каком отношении (меньше, равно или больше) находятся два объекта.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)
Устаревшие..

Передает объекту SerializationInfo данные, необходимые для сериализации.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел