Каков правильный способ сравнения символов, игнорирующих регистр?C#

Место общения программистов C#
Ответить
Anonymous
 Каков правильный способ сравнения символов, игнорирующих регистр?

Сообщение Anonymous »


Мне интересно, какой правильный способ сравнения двух символов без учета регистра будет работать для всех культур. Кроме того, является ли Comparer.Default лучшим способом проверить два символа, не игнорируя регистр? Работает ли это для суррогатных пар?

EDIT: добавлен пример реализации IComparer

Если это кому-то поможет, я решил использовать именно это
публичный класс CaseInsensivityCharComparer: IComparer { частный только для чтения System.Globalization.CultureInfo ci; public CaseInsensusCharComparer(System.Globalization.CultureInfo ci) { this.ci = ci; } общедоступный CaseInsensitivityCharComparer() : this(System.Globalization.CultureInfo.CurrentCulture) { } public int Compare(char x, char y) { return Char.ToUpper(x, ci) - Char.ToUpper(y, ci); } } // Печатает 3 Console.WriteLine("Это тест".CountChars('t', new CaseInsensusCharComparer()));
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»