Диакритические знаки в алфавитном порядке в C # - PullRequest
2 голосов
/ 07 сентября 2010

Я хочу знать, как вы выполняете надежный алфавитный порядок (для списка) полных имен людей с диакритическими знаками языка до-диез?

Заранее спасибо.

Q : То есть вы просто хотите считать диакритические знаки «оригинальной» буквой? (например: Жуан такой же, как Жоао)? - NullUserException

A : Я хочу относиться к ним так, как они должны рассматриваться на языке, который я определяю, соблюдая правила алфавитного порядка, которые люди применяют каждый день. Я уверен, что это написано в грамматике каждого языка. Благодарю. - Queops

Ответы [ 2 ]

5 голосов
/ 07 сентября 2010

Эта статья MSDN должна дать вам то, что вам нужно: Сравнение и сортировка данных для определенной культуры .Он описывает сравнение, сортировку и нормализацию с учетом особенностей культуры с примерами кода.

0 голосов
/ 07 сентября 2010

Вы можете использовать s.Normalize(NormalizationForm.FormD) для нормализации строки s, разделяя символы с ударением на символы без акцента, за которыми следует символ акцента.Затем вы можете использовать CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.NonSpacingMark для идентификации символов ударения c в нормализованном s.Учитывая это, вы можете реализовать свой собственный оператор сравнения строк, чтобы расставить акценты так, как вам нужно.

...