मैं सोच रहा हूं कि सभी संस्कृतियों के लिए काम करने वाले मामले को अनदेखा करने वाले दो पात्रों की तुलना करने का सही तरीका क्या है। इसके अलावा, 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()));
toupper वर्तमान संस्कृति के संबंध में सही अपर केस को चार परिवर्तित कर सकते हैं, लेकिन शाब्दिक आदेश लौटा सही नहीं है। संभवतः यह केवल स्ट्रिंग तुलना के लिए .NET में समर्थित है। – Holstebroe