TextInfo.ListSeparator 值已更改

不同文化的默认值 TextInfo.ListSeparator 在所有操作系统上都已更改。

更改描述

在 .NET 5.0.0 中,作为从 NLS 切换到 ICU 库的一部分,不同区域性的默认 TextInfo.ListSeparator 值在 Windows 上已更改。 从 Unicode 国际组件(ICU)获取的小数分隔符值用作 ListSeparator 值。 在 Linux 和 macOS 上,值没有变化 TextInfo.ListSeparator ;也就是说,它们继续使用小数分隔符值。

对于 .NET 5.0.1 及更高版本中的所有操作系统,其TextInfo.ListSeparator值等效于从 NLS 获取的值。 对于 Windows,这意味着这些值相当于 .NET Framework 和 .NET Core 1.0 - 3.1 中的值。 对于 Linux 和 macOS,TextInfo.ListSeparator 的值现在与 Windows 的 TextInfo.ListSeparator 值相匹配。

下表汇总了 TextInfo.ListSeparator 的值更改。

.NET 框架
.NET Core 1.0 - 3.1
.NET 5 .NET 5.0.1
Windows操作系统 从 NLS 获取 ICU 中的十进制分隔符。
可切换回 NLS。
等效于 NLS
Linux 和 macOS ICU 中的十进制分隔符 ICU 中的十进制分隔符 等效于 NLS

已引入的版本

5.0.1

更改原因

开发人员报告,他们在解析逗号分隔值(CSV)文件时使用 TextInfo.ListSeparator 属性,而新 TextInfo.ListSeparator 值会破坏这种解析。

如果代码依赖于以前的小数分隔符值,则可以硬编码所需的 TextInfo.ListSeparator 值。

受影响的 API