【问题标题】:How to do language Specific sort in C#?如何在 C# 中进行语言特定排序?
【发布时间】:2011-08-11 12:46:39
【问题描述】:

我有一个通用列表,它可以根据当前用户的语言偏好包含不同语言的值。例如,如果用户选择了日语,我会将日语文本填充到列表中。

我想根据日语文本进行排序,而不是语音排序。我们有一个带有列表的排序方法,或者我们可以使用一些扩展方法,这很好。我只想知道如何根据不同的语言进行排序?

我在 MSDN 上查看了一些关于不变文化等的文档,但没有帮助。

【问题讨论】:

  • 只是一个想法:您可以覆盖列表的 Sort() 方法,并根据语言实现所需的确切排序方式。

标签: c# sorting cultureinfo


【解决方案1】:

您要查找的内容记录在这里:http://msdn.microsoft.com/en-us/library/a7zyyk0c.aspx

基本上,您需要执行以下操作:

 Thread.CurrentThread.CurrentCulture = new CultureInfo("ja-JP");

之后,您使用普通的“排序”方法(如 Array、List<T> 等中定义的),它们将遵守日本的字符串排序规则。

【讨论】:

  • 不要这样做,改变线程的文化会产生广泛的副作用。使用 StringComparer.Culture 或采用 CultureInfo 的 string.Compare() 重载。
  • @Hans:如果用户选择了日语作为他们选择的语言,那么根据该文化适当地显示内容是否有意义?
  • 如果他们这样做了,就不需要做任何特别的事情了。默认排序顺序已经基于操作系统语言。
  • @Hans:我有点困惑,原帖说,“我有一个列表,其中包含基于当前用户语言偏好的值”......“如果用户选择了日语,我会将日语文本填充到列表中”我假设(可能是错误的)这意味着用户在程序中的某处选择了一些设置语言首选项的选项,这在计算机上有多个用户的设置中通常很有用(一个,例如,日语不是操作系统。语言)...我还没有理解你的意思吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-27
  • 1970-01-01
  • 1970-01-01
  • 2013-09-26
  • 1970-01-01
  • 2012-09-28
相关资源
最近更新 更多