【问题标题】:How to get Swedish sort order for strings如何获得字符串的瑞典语排序顺序
【发布时间】:2019-05-17 14:17:31
【问题描述】:

我在排序瑞典语字符串时遇到问题。

我在使用以下字符时遇到问题:v、w、å、ä、ö。

new[] { "ö", "ä", "å", "wa", "va", "wb", "vb", "a"  }
.OrderBy(x => x, new CultureInfo("sv-SE").CompareInfo.GetStringComparer(CompareOptions.None))

预期: a, va, vb, wa, wb, å, ä, ö

实际: a, va, wa, vb, wb, å, ä, ö

是否有任何选项可以使其按预期对字符串进行排序?

【问题讨论】:

  • 从我在维基百科中看到的,这曾经是正确的顺序,所以可能是 Windows/.NET 没有遵循最近的变化?
  • 据我所知 v 和 w 被 .NET 互换处理。据我所知,根据 Svenska Akademiens ordlista 第 13 版,排序顺序最近在 2006 年发生了变化。我们可能必须调查.NET source. 才能确定。
  • 作为一种变通方法,我已切换到文化 se-SE(萨米语),只是为了正确排序字母字符串。
  • @OskarSjöberg 如果您解决了问题,您可以随时回答自己的问题。

标签: c# linq sorting


【解决方案1】:

作为一种解决方法,我已切换到文化 se-SE (Sami),只是为了在等待 .NET 排序规则更新时正确排序字母字符串。

更新:

这里是 github 问题: https://github.com/dotnet/corefx/issues/37753

更新2:

问题不在于 .NET,而在于底层操作系统中定义的排序规则。此错误仅出现在 Windows 上。

【讨论】:

  • 这在 .NET Core 3.0 预览版 5 中也没有修复。这可能应该作为一个问题提出
  • 好主意!我现在提出了一个问题,请参阅上面的链接。
猜你喜欢
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
  • 1970-01-01
  • 2018-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多