Как правильно сравнивать регистр символов?

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

РЕДАКТИРОВАТЬ: Добавлен образецIComparer реализация

Если это кому-нибудь поможет, это то, что ямы решили использовать

public class CaseInsensitiveCharComparer : IComparer {
    private readonly System.Globalization.CultureInfo ci;
    public CaseInsensitiveCharComparer(System.Globalization.CultureInfo ci) {
        this.ci = ci;
    }
    public CaseInsensitiveCharComparer()
        : this(System.Globalization.CultureInfo.CurrentCulture) { }
    public int Compare(char x, char y) {
        return Char.ToUpper(x, ci) - Char.ToUpper(y, ci);
    }
}

// Prints 3
Console.WriteLine("This is a test".CountChars('t', new CaseInsensitiveCharComparer()));

Ответы на вопрос(8)

Ваш ответ на вопрос