C#中的变音符号字母排序

时间:2010-09-06 21:53:13

标签: c# list diacritics

我想知道你如何使用C sharp中语言的变音符号对人们的全名进行可靠的字母排序(对于列表框)?

提前致谢。

Q :您只想将变音符号视为“原始”字母? (例如:João和Joao一样)? - NullUserException

A :我想对待它们,因为它们应该用我定义的语言来对待,尊重人们每天应用的字母顺序规则。我确信它是用每种语言的语法编写的。谢谢。 - Queops

2 个答案:

答案 0 :(得分:5)

此MSDN文章应该为您提供所需内容:Comparing and Sorting Data for a Specific Culture。它描述了文化敏感的比较,排序和规范化,以及代码样本。

答案 1 :(得分:0)

您可以使用s.Normalize(NormalizationForm.FormD)规范化字符串s,将重音字符分隔为非重音字符,后跟重音符号。然后,您可以使用CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.NonSpacingMark标识规范化c中的重音字符s。鉴于此,您可以实现自己的字符串比较运算符,以便在重音符号上放置您需要的任何顺序。