Lire en anglais

Partager via


CompareOptions Énumération

Définition

Définit les options de comparaison de chaînes à utiliser avec CompareInfo.

Cette énumération prend en charge une combinaison au niveau du bit de ses valeurs membres.

C#
[System.Flags]
public enum CompareOptions
C#
[System.Flags]
[System.Serializable]
public enum CompareOptions
C#
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CompareOptions
Héritage
CompareOptions
Attributs

Champs

Nom Valeur Description
IgnoreCase 1

Indique si la casse doit être ignorée durant la comparaison des chaînes.

IgnoreKanaType 8

Indique que le type Kana doit être ignoré durant la comparaison des chaînes. Le type Kana fait référence aux caractères japonais hiragana et katakana représentant des sons phonétiques de la langue japonaise. Le caractère hiragana est utilisé pour des expressions et des mots natifs japonais, tandis que le caractère katakana est utilisé pour des mots empruntés à d’autres langues, par exemple « computer » ou « Internet ». Un son phonétique peut être exprimé à la fois avec un caractère hiragana et katakana. Quand cette valeur est sélectionnée, le caractère hiragana représentant un son est considéré comme identique au caractère katakana correspondant à ce même son.

IgnoreNonSpace 2

Indique que les comparaisons de chaînes doivent ignorer les caractères d’association sans espace, par exemple les signes diacritiques. La norme Unicode définit les caractères d’association comme des caractères combinés à des caractères de base pour produire un nouveau caractère. Au moment du rendu, les caractères d’association sans espace n’occupent pas un espace proprement dit.

IgnoreSymbols 4

Indique que la comparaison de chaînes doit ignorer les symboles, tels que les espaces blancs, les signes de ponctuation, les symboles monétaires, le symbole de pourcentage, les symboles mathématiques et l’esperluette.

IgnoreWidth 16

Indique que la largeur des caractères doit être ignorée durant la comparaison des chaînes. Par exemple, les caractères katakana japonais peuvent être écrits sous la forme de caractères à demi-chasse ou à pleine chasse. Quand cette valeur est sélectionnée, les caractères katakana à pleine chasse sont considérés comme identiques aux mêmes caractères à demi-chasse.

None 0

Indique les valeurs des options par défaut utilisées pour la comparaison de chaînes.

Ordinal 1073741824

Indique que la comparaison de chaînes doit utiliser les valeurs successives encodées en Unicode UTF-16 de la chaîne (comparaison unité de code par unité de code), permettant ainsi une comparaison rapide mais indépendante de la culture. Une chaîne qui commence par une unité de code XXXX16 vient avant une chaîne commençant par YYYY16, si XXXX16 est inférieur à YYYY16. Cette valeur ne peut pas être combinée avec d’autres valeurs CompareOptions et doit être utilisée seule.

OrdinalIgnoreCase 268435456

La comparaison de chaînes doit ignorer la casse, puis effectuer une comparaison ordinale. Cette technique équivaut à convertir la chaîne en majuscules à l’aide de la culture indifférente et à effectuer ensuite une comparaison ordinale du résultat.

StringSort 536870912

Indique que la comparaison des chaînes doit utiliser l’algorithme de triage de chaînes. Dans un triage de chaînes, le trait d’union et l’apostrophe, de même que d’autres symboles non alphanumériques, ont priorité sur les caractères alphanumériques.

Exemples

C#
using System;
using System.Collections;
using System.Globalization;

public class SamplesCompareOptions  {

   private class MyStringComparer: IComparer {
      private CompareInfo myComp;
      private CompareOptions myOptions = CompareOptions.None;

      // Constructs a comparer using the specified CompareOptions.
      public MyStringComparer( CompareInfo cmpi, CompareOptions options )  {
         myComp = cmpi;
         this.myOptions = options;
      }

      // Compares strings with the CompareOptions specified in the constructor.
      public int Compare(Object a, Object b) {
         if (a == b) return 0;
         if (a == null) return -1;
         if (b == null) return 1;

         String sa = a as String;
         String sb = b as String;
         if (sa != null && sb != null)
            return myComp.Compare(sa, sb, myOptions);
         throw new ArgumentException("a and b should be strings.");
      }
   }

   public static void Main()  {

      // Creates and initializes an array of strings to sort.
      String[] myArr = new String[9] { "cant", "bill's", "coop", "cannot", "billet", "can't", "con", "bills", "co-op" };
      Console.WriteLine( "\nInitially," );
      foreach ( String myStr in myArr )
         Console.WriteLine( myStr );

      // Creates and initializes a Comparer to use.
      //CultureInfo myCI = new CultureInfo( "en-US", false );
      MyStringComparer myComp = new MyStringComparer(CompareInfo.GetCompareInfo("en-US"), CompareOptions.None);

      // Sorts the array without StringSort.
      Array.Sort( myArr, myComp );
      Console.WriteLine( "\nAfter sorting without CompareOptions.StringSort:" );
      foreach ( String myStr in myArr )
         Console.WriteLine( myStr );

      // Sorts the array with StringSort.
      myComp = new MyStringComparer(CompareInfo.GetCompareInfo("en-US"), CompareOptions.StringSort);
      Array.Sort( myArr, myComp );
      Console.WriteLine( "\nAfter sorting with CompareOptions.StringSort:" );
      foreach ( String myStr in myArr )
         Console.WriteLine( myStr );
   }
}

/*
This code produces the following output.

Initially,
cant
bill's
coop
cannot
billet
can't
con
bills
co-op

After sorting without CompareOptions.StringSort:
billet
bills
bill's
cannot
cant
can't
con
coop
co-op

After sorting with CompareOptions.StringSort:
bill's
billet
bills
can't
cannot
cant
co-op
con
coop

*/

Remarques

Pour plus d’informations sur cette API, consultez Remarques supplémentaires sur l’API pour CompareOptions.

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Voir aussi