【问题标题】:Diacritics alphabetical ordering in C#C#中的变音符号字母顺序
【发布时间】:2010-09-06 21:53:13
【问题描述】:

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

提前致谢。

Q:所以你只想把变音符号当作“原始”字母? (例如:João 与 Joao 相同)? – NullUserException

A:我想按照我定义的语言对待他们,尊重人们每天应用的字母顺序规则。我确信它是用每种语言的语法编写的。谢谢。 – 群聊

【问题讨论】:

  • 所以您只想将变音符号视为“原始”字母? (例如:João 与 Joao 相同)?
  • 这是字母顺序而不是语法,但是如果大多数字母语言大量使用变音符号,它们就会对这些内容进行排序。有些是非正式的,有些是正式的,有些还有不止一个正式的(很多有一个字典排序的单词,但一个“电话簿”排序不同的名字)。

标签: c# list diacritics


【解决方案1】:

这篇 MSDN 文章应该可以满足您的需求:Comparing and Sorting Data for a Specific Culture。它使用代码示例描述了文化敏感的比较、排序和规范化。

【讨论】:

  • 正是我想要的。谢谢!
【解决方案2】:

您可以使用s.Normalize(NormalizationForm.FormD) 规范化字符串s,将重音字符分隔为非重音字符,后跟重音符号。然后,您可以使用CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.NonSpacingMark 来识别规范化的s 中的重音字符c。鉴于此,您可以实现自己的字符串比较运算符来对重音符号进行任何排序。

【讨论】:

    猜你喜欢
    • 2011-04-06
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多