Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

CompareInfo.IndexOf, méthode (String, Char, CompareOptions)

Recherche le caractère spécifié et retourne l'index de base zéro de la première occurrence dans la chaîne source entière à l'aide de la valeur CompareOptions spécifiée.

Espace de noms :  System.Globalization
Assembly :  mscorlib (dans mscorlib.dll)
public virtual int IndexOf(
	string source,
	char value,
	CompareOptions options
)

Paramètres

source
Type : System.String
Chaîne à rechercher.
value
Type : System.Char
Caractère à rechercher dans source.
options
Type : System.Globalization.CompareOptions
Une valeur qui définit comment les chaînes doivent être comparées. options est la valeur d'énumération Ordinal, ou une combinaison d'opérations de bits à un ou plusieurs des valeurs suivantes : IgnoreCase, IgnoreSymbols, IgnoreNonSpace, IgnoreWidth, et IgnoreKanaType.

Valeur de retour

Type : System.Int32
L'index de base zéro de la première occurrence d' value, s'il le trouve, dans source, à l'aide de les options spécifiées de comparaison ; sinon, -1. Retourne 0 (zéro) si value est un caractère ignorable.
ExceptionCondition
ArgumentNullException

source a la valeur null.

ArgumentException

options contient une valeur CompareOptions non valide.

La recherche est effectuée vers l'avant, en commençant au début et jusqu'à la fin de la chaîne source.

La valeur CompareOptions.StringSort est non valide pour cette méthode.

Si options n'inclut pas la valeur Ordinal, cette surcharge effectue une recherche dépendante de la culture. Si le caractère est une valeur Unicode représentant un caractère précomposé, par exemple la ligature "Æ" (U+00C6), elle peut être considérée comme l'équivalent de n'importe quelle occurrence des composants du caractère dans l'ordre approprié, par exemple "AE" (U+0041, U+0045), en fonction de la culture. Si options inclut la valeur Ordinal, cette surcharge effectue une recherche ordinale (indépendante de la culture). Un caractère est considéré comme l'équivalent d'un autre caractère uniquement si leurs valeurs Unicode sont identiques. Les surcharges d' String.IndexOf qui recherchent un caractère effectuent une recherche ordinale, tandis que celles qui recherchent une chaîne effectuent une recherche dépendante de la culture.

RemarqueRemarque

Si possible, vous devez utiliser les méthodes de comparaison de chaînes qui ont un paramètre de type CompareOptions pour spécifier le type de comparaison prévu. En règle générale, utilisez les options linguistiques (à l'aide de la culture actuelle) pour comparer des chaînes affichées dans l'interface et spécifiez CompareOptions.Ordinal ou CompareOptions.OrdinalIgnoreCase pour les comparaisons de sécurité.

Remarques à l'attention des appelants

Les jeux de caractères incluent des caractères ignorable, qui sont des caractères qui ne sont pas pris en compte lorsque vous effectuez un tri linguistique ou dépendant de la culture. Dans une recherche dépendante de la culture, si value est un caractère ignorable, le résultat est équivalent à rechercher avec ce caractère supprimé. Dans ce cas, la méthode d' IndexOf(String, Char, CompareOptions) retourne toujours zéro (0) pour indiquer que la correspondance est trouvée au début d' source. dans l'exemple suivant, la méthode d' IndexOf(String, Char, CompareOptions) est utilisée pour rechercher un trait d'union conditionnel (U+00AD) dans deux chaînes. Un seul des chaînes contient un trait d'union conditionnel. Dans les deux cas, parce que le trait d'union conditionnel est un caractère ignorable, une recherche dépendante de la culture retourne zéro (0) pour indiquer qu'elle a trouvé une correspondance au début de la chaîne. Une recherche ordinale, toutefois, recherche correctement le trait d'union conditionnelle dans une chaîne et signale qu'elle est absente de la seconde.


using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      CompareInfo ci = CultureInfo.CurrentCulture.CompareInfo;

      string s1 = "ani\u00ADmal";
      string s2 = "animal";

      // Find the index of the soft hyphen using culture-sensitive comparison.
      Console.WriteLine(ci.IndexOf(s1, '\u00AD', CompareOptions.IgnoreCase));
      Console.WriteLine(ci.IndexOf(s2, '\u00AD', CompareOptions.IgnoreCase));

      // Find the index of the soft hyphen using ordinal comparison.
      Console.WriteLine(ci.IndexOf(s1, '\u00AD', CompareOptions.Ordinal));
      Console.WriteLine(ci.IndexOf(s2, '\u00AD', CompareOptions.Ordinal));
   }
}
// The example displays the following output:
//       0
//       0
//       3
//       -1


L'exemple suivant détermine les index de la première et de la dernière occurrences d'un caractère ou d'une sous-chaîne contenus dans une chaîne.


using System;
using System.Globalization;

public class SamplesCompareInfo  {

   public static void Main()  {

      // Creates CompareInfo for the InvariantCulture.
      CompareInfo myComp = CultureInfo.InvariantCulture.CompareInfo;

      // Searches for the ligature Æ.
      String myStr = "Is AE or ae the same as Æ or æ?";
      Console.WriteLine();
      Console.WriteLine( "No options    : {0}", myStr );
      PrintMarker( "           AE : ", myComp.IndexOf( myStr, "AE" ), myComp.LastIndexOf( myStr, "AE" ) );
      PrintMarker( "           ae : ", myComp.IndexOf( myStr, "ae" ), myComp.LastIndexOf( myStr, "ae" ) );
      PrintMarker( "            Æ : ", myComp.IndexOf( myStr, 'Æ' ), myComp.LastIndexOf( myStr, 'Æ' ) );
      PrintMarker( "            æ : ", myComp.IndexOf( myStr, 'æ' ), myComp.LastIndexOf( myStr, 'æ' ) );
      Console.WriteLine( "Ordinal       : {0}", myStr );
      PrintMarker( "           AE : ", myComp.IndexOf( myStr, "AE", CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, "AE", CompareOptions.Ordinal ) );
      PrintMarker( "           ae : ", myComp.IndexOf( myStr, "ae", CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, "ae", CompareOptions.Ordinal ) );
      PrintMarker( "            Æ : ", myComp.IndexOf( myStr, 'Æ', CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, 'Æ', CompareOptions.Ordinal ) );
      PrintMarker( "            æ : ", myComp.IndexOf( myStr, 'æ', CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, 'æ', CompareOptions.Ordinal ) );
      Console.WriteLine( "IgnoreCase    : {0}", myStr );
      PrintMarker( "           AE : ", myComp.IndexOf( myStr, "AE", CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, "AE", CompareOptions.IgnoreCase ) );
      PrintMarker( "           ae : ", myComp.IndexOf( myStr, "ae", CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, "ae", CompareOptions.IgnoreCase ) );
      PrintMarker( "            Æ : ", myComp.IndexOf( myStr, 'Æ', CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, 'Æ', CompareOptions.IgnoreCase ) );
      PrintMarker( "            æ : ", myComp.IndexOf( myStr, 'æ', CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, 'æ', CompareOptions.IgnoreCase ) );

      // Searches for the combining character sequence Latin capital letter U with diaeresis or Latin small letter u with diaeresis.
      myStr = "Is \u0055\u0308 or \u0075\u0308 the same as \u00DC or \u00FC?";
      Console.WriteLine();
      Console.WriteLine( "No options    : {0}", myStr );
      PrintMarker( "           U\u0308 : ", myComp.IndexOf( myStr, "U\u0308" ), myComp.LastIndexOf( myStr, "U\u0308" ) );
      PrintMarker( "           u\u0308 : ", myComp.IndexOf( myStr, "u\u0308" ), myComp.LastIndexOf( myStr, "u\u0308" ) );
      PrintMarker( "            Ü : ", myComp.IndexOf( myStr, 'Ü' ), myComp.LastIndexOf( myStr, 'Ü' ) );
      PrintMarker( "            ü : ", myComp.IndexOf( myStr, 'ü' ), myComp.LastIndexOf( myStr, 'ü' ) );
      Console.WriteLine( "Ordinal       : {0}", myStr );
      PrintMarker( "           U\u0308 : ", myComp.IndexOf( myStr, "U\u0308", CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, "U\u0308", CompareOptions.Ordinal ) );
      PrintMarker( "           u\u0308 : ", myComp.IndexOf( myStr, "u\u0308", CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, "u\u0308", CompareOptions.Ordinal ) );
      PrintMarker( "            Ü : ", myComp.IndexOf( myStr, 'Ü', CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, 'Ü', CompareOptions.Ordinal ) );
      PrintMarker( "            ü : ", myComp.IndexOf( myStr, 'ü', CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, 'ü', CompareOptions.Ordinal ) );
      Console.WriteLine( "IgnoreCase    : {0}", myStr );
      PrintMarker( "           U\u0308 : ", myComp.IndexOf( myStr, "U\u0308", CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, "U\u0308", CompareOptions.IgnoreCase ) );
      PrintMarker( "           u\u0308 : ", myComp.IndexOf( myStr, "u\u0308", CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, "u\u0308", CompareOptions.IgnoreCase ) );
      PrintMarker( "            Ü : ", myComp.IndexOf( myStr, 'Ü', CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, 'Ü', CompareOptions.IgnoreCase ) );
      PrintMarker( "            ü : ", myComp.IndexOf( myStr, 'ü', CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, 'ü', CompareOptions.IgnoreCase ) );

   }

   public static void PrintMarker( String Prefix, int First, int Last )  {

      // Determines the size of the array to create.
      int mySize;
      if ( Last > First )
         mySize = Last;
      else
         mySize = First;

      if ( mySize > -1 )  {

         // Creates an array of Char to hold the markers.
         Char[] myCharArr = new Char[mySize+1];

         // Inserts the appropriate markers.
         if ( First > -1 )
         myCharArr[First] = 'f';
         if ( Last > -1 )
            myCharArr[Last] = 'l';
         if ( First == Last )
         myCharArr[First] = 'b';

         // Displays the array of Char as a String.
         Console.WriteLine( "{0}{1}", Prefix, new String( myCharArr ) );

      }
      else
         Console.WriteLine( Prefix );

   }

}


/*
This code produces the following output.

No options    : Is AE or ae the same as Æ or æ?
           AE :    f                    l
           ae :          f                   l
            Æ :    f                    l
            æ :          f                   l
Ordinal       : Is AE or ae the same as Æ or æ?
           AE :    b
           ae :          b
            Æ :                         b
            æ :                              b
IgnoreCase    : Is AE or ae the same as Æ or æ?
           AE :    f                         l
           ae :    f                         l
            Æ :    f                         l
            æ :    f                         l

No options    : Is U" or u" the same as Ü or ü?
           U" :    f                    l
           u" :          f                   l
            Ü :    f                    l
            ü :          f                   l
Ordinal       : Is U" or u" the same as Ü or ü?
           U" :    b
           u" :          b
            Ü :                         b
            ü :                              b
IgnoreCase    : Is U" or u" the same as Ü or ü?
           U" :    f                         l
           u" :    f                         l
            Ü :    f                         l
            ü :    f                         l

*/


.NET Framework

Pris en charge dans : 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

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.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft. Tous droits réservés.