Каков правильный способ сравнения символов, игнорирующих регистр?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()));

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