CompareOptionsenum

Cet article contient des remarques complémentaires à la documentation de référence pour cette API.

Les options de CompareOptions indiquent le respect ou non de la casse, ou la nécessité d’ignorer des types de caractères.

.NET utilise trois méthodes distinctes de tri : tri de mots, tri de chaînes et tri ordinal. Le tri de mots effectue une comparaison de chaînes respectant la culture. Des pondérations spéciales peuvent être attribuées à certains caractères non alphanumériques. Par exemple, le trait d’union (« - ») peut être affecté d’une pondération très faible : « coop » et « co-op » apparaissent donc à côté l’un de l’autre dans une liste triée. Le tri de chaînes est similaire au tri de mots, sauf qu’il n’y a pas de cas spéciaux. Par conséquent, tous les symboles non alphanumériques viennent avant tous les caractères alphanumériques. Le tri ordinal compare les chaînes en fonction des valeurs Unicode de chaque élément de la chaîne. Pour obtenir un ensemble de fichiers texte qui contiennent des informations sur les pondérations des caractères utilisés dans les opérations de tri et de comparaison pour les systèmes d’exploitation Windows, consultez Tables des pondérations pour le tri. Pour obtenir la table des pondérations pour le tri pour Linux et macOS, consultez la Table des éléments du classement Unicode par défaut. La version spécifique de la table de pondération de tri sur Linux et macOS varie selon la version des bibliothèques International Components for Unicode installées sur le système. Pour plus d’informations sur les versions ICU et les versions Unicode qu’elles implémentent, consultez Téléchargement d’ICU.

La valeur StringSort peut être utilisée seulement avec CompareInfo.Compare et CompareInfo.GetSortKey. L’exception ArgumentException est levée si la valeur StringSort est utilisée avec CompareInfo.IsPrefix, CompareInfo.IsSuffix, CompareInfo.IndexOf ou CompareInfo.LastIndexOf.

Remarque

Quand c’est possible, vous devez utiliser des méthodes de comparaison de chaînes qui acceptent une valeur CompareOptions pour spécifier le type de comparaison attendu. En règle générale, les comparaisons destinées à des utilisateurs sont mieux prises en charge via l’utilisation d’options linguistiques (en utilisant la culture actuelle), tandis que les comparaisons de sécurité doivent spécifier Ordinal ou OrdinalIgnoreCase.

Tris respectant la culture

Remarque

.NET Core s’exécutant sur des systèmes Linux et macOS uniquement : le comportement de classement pour les cultures C et Posix respecte toujours la casse, car ces cultures n’utilisent pas l’ordre de classement Unicode attendu. Nous vous recommandons d’utiliser une culture autre que C ou Posix pour effectuer des opérations de tri respectant la culture, mais ne respectant pas la casse.