Share via


Tri avec les cultures

Le tri de chaînes varie en fonction des règles de tri en vigueur pour comparer, et donc ordonner, les paires de chaînes. Lorsque votre application exécute une opération de comparaison, vous pouvez soit explicitement spécifier la règle de tri à l'aide d'une ou plusieurs valeurs d'énumération CompareOptions, soit implicitement spécifier une règle de tri à l'aide d'un objet CultureInfo.

Le .NET Framework prend en charge les règles de tri par mot, par chaîne ou ordinal. Un tri des mots effectue une comparaison, dépendante de la culture, des chaînes dans lesquelles une pondération différente peut être assignée à certains caractères Unicode non alphanumériques. Par exemple, une très petite pondération peut être assignée au tiret ("-") afin que les mots "coop" et "co-op" se suivent dans une liste triée. Le tri par chaîne est similaire au tri par mot, à ceci près qu'il n'y a aucun cas particulier et que tous les symboles non alphanumériques sont répertoriés avant tous les caractères Unicode alphanumériques. Le tri ordinal compare des chaînes sur la valeur numérique de chaque objet Char de la chaîne. Pour plus d'informations sur les règles de tri par mot, par chaîne ou ordinal, consultez CompareOptions.

Le .NET Framework représente des chaînes avec la classe String, et chaque caractère Unicode dans une chaîne avec une structure Char. Les cultures sont représentées avec la classe CultureInfo, et les informations spécifiques à la culture qui appartiennent à une comparaison sont représentées par la classe CompareInfo. Les classes String et CompareInfo sont les sources principales des méthodes de comparaison. Sauf spécification contraire, les opérations de comparaison utilisent la culture associée au thread actuel.

Quand et comment comparer avec les cultures

Utilisez les indications suivantes pour déterminer si votre application doit effectuer une comparaison dépendante de la culture.

  • Si votre application requiert une opération de tri qui dépend d'une culture particulière, elle doit utiliser une méthode de comparaison qui spécifie un objet CultureInfo ou un paramètre d'énumération CompareOptions.

  • Si l'application requiert une opération de tri qui n'est pas spécifique à une culture particulière, elle doit spécifier la culture indifférente ou utilisez un tri ordinal. Par exemple, une application utilise une comparaison ordinale pour trier les noms des fichiers, les mutex et les canaux nommés. Pour plus d'informations sur la culture dite indifférente, consultez Utilisation de la propriété InvariantCulture. Pour plus d'informations sur le tri ordinal, consultez Normalisation et tri.

  • Si votre application prend une décision de sécurité sur la base du tri des chaînes, utilisez un tri ordinal.

Remarque importanteImportant

Le conseil autrefois en vigueur d'utiliser la culture indifférente dans une opération de comparaison prise en compte dans une décision de sécurité ne vaut plus.L'application doit utiliser à la place une comparaison ordinale.

Voir aussi

Concepts

Utilisation de la propriété InvariantCulture

Normalisation et tri