Класс типа string содержит ряд методов для обращения со строками. Некото рые из этих методов перечислены в табл. 7.1. Обратите внимание на то, что некото рые методы принимают параметр типа StringComparison. Это перечислимый тип, определяющий различные значения, которые определяют порядок сравнения символьных строк. (О перечислениях речь пойдет в главе 12, но для применения типа StringComparison к символьным строкам знать о перечислениях необязательно.) Нетрудно догадаться, что символьные строки можно сравнивать разными способа ми. Например, их можно сравнивать на основании двоичных значений символов, из которых они состоят. Такое сравнение называется порядковым. Строки можно также сравнивать с учетом различных особенностей культурной среды, например, в лекси кографическом порядке. Это так называемое сравнение с учетом культурной среды. (Учитывать культурную среду особенно важно в локализуемых приложениях.) Кроме того, строки можно сравнивать с учетом или без учета регистра. Несмотря на то что существуют перегружаемые варианты методов Compare, Equals, IndexOf и LastIndexOf, обеспечивающие используемый по умолчанию подход к сравне нию символьных строк, в настоящее время считается более приемлемым явно указы вать способ требуемого сравнения, чтобы избежать неоднозначности, а также упро стить локализацию приложений. Именно поэтому здесь рассматривают разные спо собы сравнения символьных строк.
Как правило и за рядом исключений, для сравнения символьных строк с уче том культурной среды (т.е. языковых и региональных стандартов) применяется способ StringComparison.CurrentCulture. Если же требуется сравнить стро ки только на основании значений их символов, то лучше воспользоваться спосо бом StringComparison.Ordinal, а для сравнения строк без учета регистра — од ним из двух способов: StringComparison.CurrentCultureIgnoreCase или StringComparison.OrdinalIgnoreCase. Кроме того, можно указать сравнение строк без учета культурной среды (подробнее об этом — в главе 22).
Обратите внимание на то, что метод Compare объявляется в табл. 7.1 как static. Подробнее о модификаторе static речь пойдет в главе 8, а до тех пор вкратце по ясним, что он обозначает следующее: метод Compare вызывается по имени своего класса, а не по его экземпляру. Следовательно, для вызова метода Compare служит следующая общая форма: результат = string.Compare(str1, str2, способ);
где способ обозначает конкретный подход к сравнению символьных строк.
ПРИМЕЧАНИЕ Дополнительные сведения о способах сравнения и поиска символьных строк, включая и особое значение выбора подходящего способа, приведены в главе 22, где подробно рассматривается обработка строк.
Обратите также внимание на методы ToUpper и ToLower, преобразующие со держимое строки в символы верхнего и нижнего регистра соответственно. Их формы, представленные в табл. 7.1, содержат параметр CultureInfо, относящийся к классу, в котором описываются атрибуты культурной среды, применяемые для сравнения. В примерах, приведенных в этой книге, используются текущие настройки культурной среды (т.е. текущие языковые и региональные стандарты). Эти настройки указываются при передаче методу аргумента CultureInfo.CurrentCulture. Класс CultureInfo относится к пространству имен System.Globalization. Любопытно, имеются вари анты рассматриваемых здесь методов, в которых текущая культурная среда исполь зуется по умолчанию, но во избежание неоднозначности в примерах из этой книги аргумент CultureInfo.CurrentCulture указывается явно.
Объекты типа string содержат также свойство Length, где хранится длина строки.