Изменены значения TextInfo.ListSeparator
Значения по умолчанию TextInfo.ListSeparator для разных языков и региональных параметров изменились во всех операционных системах.
Описание изменения
В .NET 5.0.0 в рамках переключения с NLS на библиотеки ICU значения TextInfo.ListSeparator по умолчанию для различных языков и региональных параметров в Windows изменились. В качестве значений ListSeparator были использованы значения десятичных разделителей, полученные из международных компонентов для Юникода (ICU). В Linux и macOS значения TextInfo.ListSeparator не изменились, то есть по-прежнему используются значения десятичного разделителя.
Для всех операционных систем в .NET 5.0.1 и более поздних версий значения для TextInfo.ListSeparator эквивалентны значениям, полученным из NLS. Для Windows это означает, что значения эквивалентны тем, что были в .NET Framework и .NET Core 1.0–3.1. Для Linux и macOS значения TextInfo.ListSeparator теперь соответствуют значениям TextInfo.ListSeparator для Windows.
В следующей таблице приведены изменения для значений TextInfo.ListSeparator.
.NET Framework .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
Причина изменения
Разработчики сообщили, что они используют свойство TextInfo.ListSeparator при анализе файлов с разделителями-запятыми (CSV), а новые значения TextInfo.ListSeparator нарушают этот синтаксический анализ.
Рекомендуемое действие
Если код зависит от предыдущих значений десятичного разделителя, можно жестко закодировать требуемые значения TextInfo.ListSeparator.