Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

CompareOptions, énumération

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

Cette énumération possède un attribut FlagsAttribute qui permet la combinaison d'opérations de bits de ses valeurs de membres.

Espace de noms :  System.Globalization
Assembly :  mscorlib (dans mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
[FlagsAttribute]
public enum CompareOptions

Nom de membreDescription
Pris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIgnoreCaseIndique si la casse doit être ignorée durant la comparaison des chaînes.
Pris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIgnoreKanaTypeIndique 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. Lorsque 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.
Pris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIgnoreNonSpaceIndique 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. Lors du rendu, les caractères d'association sans espace n'occupent pas un espace proprement dit.
Pris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIgnoreSymbolsIndique que les symboles, par exemple les espaces, les signes de ponctuation, les symboles monétaires, le signe %, les symboles mathématiques, le signe &, etc., doivent être ignorés durant la comparaison des chaînes.
Pris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIgnoreWidthIndique 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. Lorsque 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.
Pris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreNoneIndique les valeurs des options par défaut utilisées pour la comparaison de chaînes.
Pris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreOrdinalIndique 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.
Pris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreOrdinalIgnoreCaseLa 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.
Pris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreStringSortIndique 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.

Ces options indiquent si la casse et les types de caractères doivent être respectés.

Le .NET Framework utilise trois méthodes de tri distinctes : le tri par mot, le tri par chaîne et le tri ordinal. Le tri par mot consiste à effectuer une comparaison de chaînes dépendante de la culture. Des pondérations spéciales peuvent être assignées à certains caractères 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, sauf qu'il n'y a aucun cas particulier. Par conséquent, tous les symboles non alphanumériques sont répertoriés avant tous les caractères alphanumériques. Le tri ordinal compare des chaînes en fonction des valeurs Unicode de chaque élément de la chaîne.

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

RemarqueRemarque

Si possible, l'application doit 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 rencontrées par les utilisateurs sont servies le mieux 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.

L'exemple de code suivant illustre la différence entre le tri avec le champ StringSort et le tri sans le champ StringSort.


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

*/


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

Afficher:
© 2014 Microsoft