Выбрать главу

Equals(object

obj)

строка содержит ту же последовательность символов, что и строковое представление объекта obj. Выполняется порядковое сравнение с учетом регистра, но без учета культурной среды

public bool

Возвращает логическое значение true, если вызывающая

Equals(string

value)

строка содержит ту же последовательность символов, что и строка value. Выполняется порядковое сравнение с учетом регистра, но без учета культурной среды

public bool

Возвращает логическое значение true, если вызывающая

Equals(string

value,

строка содержит ту же последовательность символов, что и

StringComparison

строка value. Параметр comparison Туре определяет кон

comparisonType)

кретный способ сравнения строк

public static

bool

Возвращает логическое значение true, если строка а содер

Equals(string

a,

жит ту же последовательность символов, что и строка Ь. Вы

string b)

полняется порядковое сравнение с учетом регистра, но без учета культурной среды

public static

bpol

Возвращает логическое значение true, если строка а со

Equals(string

a,

держит ту же последовательность символов, что и строка Ь.

string b,

Параметр comparisonType определяет конкретный способ

StringComparison

сравнения строк

comparison Type)

Тип StringComparison представляет собой перечисление, в котором определяются значения, приведенные в табл. 22.2. Используя эти значения, можно организовать сравнение строк, удовлетворяющее потребностям конкретного приложения. Следовательно, добавление параметра типа StringComparison расширяет возможности метода Compare () и других методов сравнения, например, Equals (). Это дает также возможность однозначно указывать способ предполагаемого сравнения строк. В силу имеющих отличий между сравнением строк с учетом культурной среды и порядковым сравнением очень важно быть предельно точным в этом отношении. Именно по этой причине в примерах программ, приведенных в данной книге, параметр типа StringComparison явно указывается в вызовах тех методов, в которых он поддерживается.

Таблица 22.2. Значения, определяемые в перечислении StringComparison

Значение

Описание

CurrentCulture

Сравнение строк производится с использованием текущих настроек параметров культурной среды

CurrentCultureIgnoreCase

Сравнение строк производится с использованием текущих настроек параметров культурной среды, но без учета регистра

InvariantCulture

Сравнение строк производится с использованием неизменяемых, т.е. универсальных данных о культурной среде

Значение

Описание

InvariantCulturelngoreCase

Сравнение строк производится с использованием не

-

изменяемых, т.е. универсальных данных о культурной среде и без учета регистра

Ordinal

Сравнение строк производится с использованием порядковых значений символов в строке. При этом лексикографический порядок может нарушиться, а условные обозначения, принятые в отдельной культурной среде, игнорируются

OrdinalIgnoreCase

Сравнение строк производится с использованием порядковых значений символов в строке, но без учета регистра. При этом лексикографический порядок может нарушиться, а условные обозначения, принятые в отдельной культурной среде, игнорируются

В любом случае метод Compare () возвращает отрицательное значение, если первая сравниваемая строка оказывается меньше второй; положительное значение, если первая сравниваемая строка больше второй; и наконец, нуль, если обе сравниваемые строки равны. Несмотря на то что метод Compare () возвращает нуль, если сравниваемые строки равны, для определения равенства символьных строк, как правило, лучше пользоваться методом Equals () или же оператором = =. Дело в том, что метод Compare () определяет равенство сравниваемых строк на основании порядка их сортировки. Так, если выполняется сравнение строк с учетом культурной среды, то обе строки могут оказаться одинаковыми по порядку их сортировки, но не равными по существу. По умолчанию равенство строк определяется в методе Equals (), исходя из порядковых значений символов и без учета культурной среды. Следовательно, по умолчанию обе строки сравниваются в этом методе на абсолютное, посимвольное равенство подобно тому, как это делается в операторе = =.