Je me demande quelle est la bonne façon de comparer deux personnages en ignorant la casse qui fonctionnera pour toutes les cultures. De plus, Comparer<char>.Default
le meilleur moyen de tester deux caractères sans ignorer la casse? Est-ce que cela fonctionne pour les paires de substitution?
EDIT : ajout de l'échantillon IComparer<char>
implémentation
Si cela aide quelqu'un, c'est ce que j'ai décidé d'utiliser
public class CaseInsensitiveCharComparer : IComparer<char> {
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()));