KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm wondering what the correct way to compare two characters ignoring case that will work for all cultures. Also, is Comparer<char>.Default the best way to test two characters without ignoring case? Does this work for surrogate-pairs? EDIT : Added sample IComparer<char> implementation If this helps anyone this is what I've decided to use 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()));
Tags (comma-separated)
Save Edits
Cancel