我想知道你如何使用C sharp中语言的变音符号对人们的全名进行可靠的字母排序(对于列表框)?
提前致谢。
Q :您只想将变音符号视为“原始”字母? (例如:João和Joao一样)? - NullUserException
A :我想对待它们,因为它们应该用我定义的语言来对待,尊重人们每天应用的字母顺序规则。我确信它是用每种语言的语法编写的。谢谢。 - Queops
答案 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
。鉴于此,您可以实现自己的字符串比较运算符,以便在重音符号上放置您需要的任何顺序。