Les valeurs TextInfo.ListSeparator ont été modifiées

Les valeurs par défaut TextInfo.ListSeparator des différentes cultures ont changé sur tous les systèmes d’exploitation.

Description de la modification

Dans .NET 5.0.0, dans le cadre du passage de NLS aux bibliothèques ICU, les valeurs par défaut TextInfo.ListSeparator des différentes cultures ont été modifiées sur Windows. Les valeurs de séparateur décimal, obtenues à partir de composants internationaux pour Unicode (ICU), ont été utilisées comme valeurs ListSeparator. Sur Linux et macOS, il n’y a pas eu de changement dans les valeurs TextInfo.ListSeparator ; c’est-à-dire qu’elles ont continué à utiliser des valeurs de séparateur décimal.

Pour tous les systèmes d’exploitation dans .NET 5.0.1 et versions ultérieures, les valeurs pour TextInfo.ListSeparator sont équivalentes aux valeurs qui seraient obtenues à partir de NLS. Pour Windows, cela signifie que les valeurs sont équivalentes à ce qu’elles étaient dans .NET Framework et .NET Core 1.0 - 3.1. Pour Linux et macOS, les valeurs TextInfo.ListSeparator correspondent désormais aux valeurs TextInfo.ListSeparator de Windows.

Le tableau suivant récapitule les changements des valeurs TextInfo.ListSeparator.

.NET Framework
.NET Core 1.0 à 3.1
.NET 5 .NET 5.0.1
Windows Obtenues à partir de NLS Séparateur décimal de l’ICU.
Peut revenir à NLS.
Équivaut à NLS
Linux et macOS Séparateur décimal de l’ICU Séparateur décimal de l’ICU Équivaut à NLS

Version introduite

5.0.1

Raison du changement

Les développeurs ont signalé qu’ils utilisaient la propriété TextInfo.ListSeparator lors de l’analyse des fichiers CSV (Valeurs séparées par des virgules) et que les nouvelles valeurs TextInfo.ListSeparator ont cassé cette analyse.

Si votre code s’appuie sur les valeurs de séparateur décimal précédentes, vous pouvez encoder en dur les valeurs TextInfo.ListSeparator souhaitées.

API affectées