C# 按本地化对列表排序

C# 按本地化对列表排序,c#,list,generics,sorting,unicode,C#,List,Generics,Sorting,Unicode,我需要对包含日语字母的列表进行排序。 如何在C#中执行此操作?有一个重载List.Sort(IComparer comparer comparer)。可以将特定于区域性的比较器传递给排序方法。以下代码使用日语区域性设置进行比较: myList.Sort(StringComparer.Create(new CultureInfo("ja-JP"), true)); 在本例中,我将true作为参数传递,以指示比较必须不区分大小写。StringComparer有两个静态属性和方法来创建合适的比较器:

我需要对包含日语字母的
列表进行排序。

如何在C#中执行此操作?

有一个重载
List.Sort(IComparer comparer comparer)
。可以将特定于区域性的比较器传递给排序方法。以下代码使用日语区域性设置进行比较:

myList.Sort(StringComparer.Create(new CultureInfo("ja-JP"), true));
在本例中,我将
true
作为参数传递,以指示比较必须不区分大小写。
StringComparer
有两个静态属性和方法来创建合适的比较器:

StringComparer.CurrentCulture;
StringComparer.CurrentCultureIgnoreCase;
StringComparer.Create(CultureInfo culture, bool ignoreCase);
etc.
您可以找到更多信息。

我使用:

Array.Sort(myArray, StringComparer.Ordinal);

它将按Ascii值对数组进行排序,因此您将得到平假名、片假名,然后是汉字。

我不能保证这一点,但我认为如果您使用
Compare
对数组进行排序,在给定正确的文化信息的情况下,它应该是开箱即用的……日语没有格,但有三种不同的单词排序约定。一个基于发音,一个基于诗歌,一个基于部首(组成字符的部分)。我将对假名列表{Hiragana}进行排序,这样会更简单。我发现,当使用SortedList时,我可以轻松地进行排序