我想知道什麼是正確的方式來比較兩個字符忽略案件,將適用於所有文化。另外,Comparer<char>.Default
是測試兩個字符而不忽略大小寫的最佳方法嗎?這是否適用於代理對?比較char忽略大小寫的正確方法是什麼?
編輯:新增樣本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()));
ToUpper的可炭轉換爲正確的上殼體相對於所述當前培養,但返回的詞彙順序不正確。可能這隻在.NET中支持字符串比較。 – Holstebroe 2013-11-20 14:44:01