У меня есть список строк UTF-8, которые я хочу отсортировать, используя Enumerable.OrderBy . Строки могут содержать любое количество наборов символов - например, английский, немецкий и японский, или даже их сочетание.
Например, вот примерный список ввода:
["東京","North 東京", "München", "New York", "Chicago", "大阪市"]
Я не совсем понимаю, является ли использование StringComparer.CurrentCulture правильным параметром сравнения строк для передачи OrderBy()
. Что, если текущая культура приложения en-US
, но я все еще хочу сортировать данные UTF-8 "правильно", помимо en-US
правил сортировки?
Моя путаница, вероятно, связана с моим пониманием функции NLSSORT в Oracle, которая не совсем соответствует семантике сравнения и сортировки строк .NET. Например, установка NLS_SORT = Japanese_M означает, что он будет правильно сортировать латиницу, западноевропейский и японский языки независимо от того, встречается ли какой-либо или все символы в данной строке в столбце сортировки.