Сортировать список по локализации - PullRequest
3 голосов
/ 05 апреля 2011

Мне нужно отсортировать List<string>, который содержит японский алфавит. Как я мог сделать это в C #?

Ответы [ 2 ]

4 голосов
/ 05 апреля 2011

Перегрузка List<T>.Sort(IComparer<T> comparer). Вы можете передать специфичный для культуры компаратор в метод сортировки. Следующий код сравнивается с использованием настроек японской культуры:

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

В этом случае я передал true в качестве аргумента, чтобы указать, что сравнение должно быть без учета регистра. StringComparer имеет несколько статических свойств и методов для создания подходящего компаратора:

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

Вы можете найти больше информации на этой странице MSDN .

2 голосов
/ 21 июня 2011

Я использую:

Array.Sort(myArray, StringComparer.Ordinal);

Он отсортирует массив по значению Ascii, поэтому вы получите хирагану, катакану, а затем кандзи.

...