сравнение строк
Сравнение — пожалуй, наиболее часто выполняемая со строками операция. Есть две
причины, по которым приходится сравнивать строки. Мы сравниваем две строки
для выяснения, равны ли они, и для сортировки (прежде всего, для представления
их пользователю программы).
Для проверки равенства строк и для их сравнения при сортировке я настоятельно
рекомендую использовать один из перечисленных далее методов, реализованных
в классе
String
:
Boolean Equals(String value, StringComparison comparisonType)
static Boolean Equals(String a, String b, StringComparison comparisonType)
363
Тип.System String
sta
tic Int32 Compare(String strA, String strB,
StringComparison comparisonType)
static Int32 Compare(string strA, string strB,
Boolean ignoreCase, CultureInfo culture)
static Int32 Compare(String strA, String strB,
CultureInfo culture, CompareOptions options)
static Int32 Compare(String strA, Int32 indexA, String strB, Int32 indexB,
Int32 length, StringComparison comparisonType)
static Int32 Compare(String strA, Int32 indexA, String strB, Int32 indexB,
Int32 length, CultureInfo culture, CompareOptions options)
static Int32 Compare(String strA, Int32 indexA, String strB, Int32 indexB,
Int32 length, Boolean ignoreCase, CultureInfo culture)
Boolean StartsWith(String value, StringComparison comparisonType)
Boolean StartsWith(String value,
Boolean ignoreCase, CultureInfo culture)
Boolean EndsWith(String value, StringComparison comparisonType)
Boole
an EndsWith(String value, Boolean ignoreCase, CultureInfo culture)
При сортировке всегда нужно учитывать регистр символов. Дело в том, что две
строки, отличающиеся лишь регистром символов, будут считаться одинаковыми
и поэтому при каждой сортировке они могут упорядочиваться в произвольном
порядке, что может приводить пользователя в замешательство.
В аргументе
comparisonType
(он есть в большинстве перечисленных методов)
передается одно из значений, определенных в перечислимом типе
StringComparison
,
который определен следующим образом:
public enum StringComparison {
CurrentCulture = 0,
CurrentCultureIgnoreCase = 1,
InvariantCulture = 2,
InvariantCultureIgnoreCase = 3,
Ordinal = 4,
OrdinalIgnoreCase = 5
}
Аргумент
options
является одним из значений, определенных перечислимым
типом
CompareOptions
:
[Flags]
public enum CompareOptions {
None = 0,
IgnoreCase = 1,
IgnoreNonSpace = 2,
IgnoreSymbols = 4,
IgnoreKanaType = 8,
IgnoreWidth = 0x00000010,
Ordinal = 0x40000000,
OrdinalIgnoreCase = 0x10000000,
StringSort = 0x20000000
}
364
Do'stlaringiz bilan baham: |