我想知道忽略大小写比较两个字符的正确方法,适用于所有文化。而且,
编辑:添加了示例
如果对任何人有帮助,这就是我决定使用的内容。
Comparer<char>.Default
是否是测试两个字符而不忽略大小写的最佳方法?这对代理对起作用吗?编辑:添加了示例
IComparer<char>
实现如果对任何人有帮助,这就是我决定使用的内容。
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()));