Partager via


CompareOptions énumération

Cet article fournit des remarques supplémentaires à la documentation de référence de cette API.

Les options CompareOptions indiquent la sensibilité à la casse ou la nécessité d’ignorer les types de caractères.

.NET utilise trois méthodes distinctes de tri : tri de mots, tri de chaîne et tri ordinal. Le tri des mots effectue une comparaison des chaînes en tenant compte de la culture. Certains caractères nonphanumériques peuvent avoir des poids spéciaux qui leur sont attribués. Par exemple, le trait d’union (« - ») peut avoir un poids très faible lui étant attribué afin que « coop » et «co-op» apparaissent en regard des autres dans une liste triée. Le tri de chaîne est similaire au tri des mots, sauf qu’il n’existe aucun cas spécial. Par conséquent, tous les symboles non alphanumériques sont 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 téléchargeable de fichiers texte qui contiennent des informations sur les pondérations de caractères utilisées dans les opérations de tri et de comparaison pour les systèmes d’exploitation Windows, consultez Tables de pondération de tri. Pour obtenir la table de pondération de tri pour Linux et macOS, consultez la table d’éléments de classement Unicode par défaut. La version spécifique de la table de pondération de tri sur Linux et macOS dépend de la version des composants internationaux pour les bibliothèques Unicode installées sur le système. Pour plus d’informations sur les versions d’ICU et les versions Unicode qu’ils implémentent, consultez Téléchargement d’ICU.

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

Remarque

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

Tri sensible à la culture

Remarque

.NET Core s’exécutant uniquement sur les systèmes Linux et macOS : le comportement de classement pour les cultures C et Posix est toujours sensible à 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.