I need to sort a List
which contains Japanese alphabet.
How could I do this in C#?
I use:
Array.Sort(myArray, StringComparer.Ordinal);
It will sort the array by Ascii value, so you'll get hiragana, katakana, and then kanji.
There is an overload List<T>.Sort(IComparer<T> comparer)
. You can pass a culture specific comparer to the sort method. The following code compares using the Japanese culture settings:
myList.Sort(StringComparer.Create(new CultureInfo("ja-JP"), true));
In this case I passed true
as the argument to indicate that the comparison must be case insensitive. The StringComparer
has a couple of static properties and methods to create a suitable comparer:
StringComparer.CurrentCulture;
StringComparer.CurrentCultureIgnoreCase;
StringComparer.Create(CultureInfo culture, bool ignoreCase);
etc.
You can find more information on this msdn page.