按本地化排序列表

时间:2011-04-04 22:16:13

标签: c# list generics sorting unicode

我需要对包含日语字母的List<string>进行排序。 我怎么能在C#中做到这一点?

2 个答案:

答案 0 :(得分:4)

有一个重载List<T>.Sort(IComparer<T> comparer)。您可以将特定于文化的比较器传递给sort方法。以下代码使用日语文化设置进行比较:

myList.Sort(StringComparer.Create(new CultureInfo("ja-JP"), true));

在这种情况下,我传递true作为参数,以指示比较必须不区分大小写。 StringComparer有几个静态属性和方法来创建合适的比较器:

StringComparer.CurrentCulture;
StringComparer.CurrentCultureIgnoreCase;
StringComparer.Create(CultureInfo culture, bool ignoreCase);
etc.

您可以找到更多信息on this msdn page

答案 1 :(得分:2)

我用:

Array.Sort(myArray, StringComparer.Ordinal);

它将按Ascii值对数组进行排序,这样你就可以得到平假名,片假名,然后是汉字。