Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

String.IndexOf méthode (String, Int32, StringComparison)

 

Date de publication : novembre 2016

Signale l'index de base zéro de la première occurrence de la chaîne spécifiée dans l'objet String actuel. Les paramètres spécifient la position de départ de la recherche dans la chaîne actuelle et le type de recherche à utiliser pour la chaîne spécifiée.

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

public int IndexOf(
	string value,
	int startIndex,
	StringComparison comparisonType
)

Paramètres

value
Type: System.String

Chaîne à rechercher.

startIndex
Type: System.Int32

Position de départ de la recherche.

comparisonType
Type: System.StringComparison

L'une des valeurs d'énumération qui spécifie les règles de la recherche.

Valeur de retour

Type: System.Int32

Position d’index de base zéro du paramètre value à partir du début de l’instance active si cette chaîne est trouvée, ou -1 si elle est introuvable. Si value est Empty, la valeur de retour est startIndex.

Exception Condition
ArgumentNullException

value a la valeur null.

ArgumentOutOfRangeException

startIndex est inférieur à 0 (zéro) ou supérieur à la longueur de cette chaîne.

ArgumentException

comparisonType n’est pas une valeur valide de System.StringComparison.

Numérotation de l’index commence à 0. Le paramètre startIndex peut varier entre 0 et la longueur de l'instance de chaîne. Si startIndex est égal à la longueur de l’instance de chaîne, la méthode retourne -1.

Le comparisonType paramètre indique de rechercher le value paramètre à l’aide de la culture actuelle ou invariante, à l’aide d’une recherche qui respecte la casse ou non la casse et à l’aide de word ou des règles de comparaison ordinale.

Remarques à l’attention des appelants :

Les jeux de caractères incluent les caractères ignorables, à savoir les caractères qui ne sont pas considérés lors de l'exécution d'une comparaison linguistique ou dépendante de la culture. Dans une recherche dépendante de la culture (autrement dit, si comparisonType n'est pas StringComparison.Ordinal ou StringComparison.OrdinalIgnoreCase), si value contient un caractère ignorable, le résultat est équivalent à une recherche avec ce caractère supprimé. Si value se compose uniquement d’un ou plusieurs caractères ignorables, à laIndexOf(String, Int32, StringComparison) méthode retourne toujours startIndex, qui est la position de caractère à partir duquel commence la recherche.

Dans l’exemple suivant, la IndexOf(String, Int32, StringComparison) méthode est utilisée pour rechercher la position d’un trait d’union (U + 00AD) suivie d’un « m » en commençant par la position de caractère tiers dans les deux chaînes. Une seule des chaînes contient la sous-chaîne requise. Si l’exemple est exécuté le .NET Framework 4 ou une version ultérieure, dans les deux cas, étant donné que le trait d’union est un caractère ignorable, la méthode retourne l’index « m » dans la chaîne lorsqu’elle effectue une comparaison dépendante de la culture. Notez que, dans le cas de la première chaîne, qui inclut le trait d'union conditionnel suivi d'un « m », la méthode ne parvient pas à retourner l'index du trait d'union, mais retourne à la place celui de la lettre « m ». La méthode retourne l'index du trait d'union conditionnel dans la première chaîne uniquement lorsqu'elle effectue une comparaison ordinale.

using System;

public class Example
{
   public static void Main()
   {
      string searchString = "\u00ADm";
      string s1 = "ani\u00ADmal" ;
      string s2 = "animal";

      Console.WriteLine(s1.IndexOf(searchString, 2, StringComparison.CurrentCulture));
      Console.WriteLine(s1.IndexOf(searchString, 2, StringComparison.Ordinal));
      Console.WriteLine(s2.IndexOf(searchString, 2, StringComparison.CurrentCulture));
      Console.WriteLine(s2.IndexOf(searchString, 2, StringComparison.Ordinal));
   }
}
// The example displays the following output:
//       4
//       3
//       3
//       -1

L’exampledemonstrates suivant trois surcharges de la IndexOf méthode qui recherche la première occurrence d’une chaîne dans une autre chaîne à l’aide de différentes valeurs de la StringComparison énumération.

// This code example demonstrates the 
// System.String.IndexOf(String, ..., StringComparison) methods.

using System;
using System.Threading;
using System.Globalization;

class Sample 
{
    public static void Main() 
    {
    string intro = "Find the first occurrence of a character using different " + 
                   "values of StringComparison.";
    string resultFmt = "Comparison: {0,-28} Location: {1,3}";

// Define a string to search for.
// U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
    string CapitalAWithRing = "\u00c5"; 

// Define a string to search. 
// The result of combining the characters LATIN SMALL LETTER A and COMBINING 
// RING ABOVE (U+0061, U+030a) is linguistically equivalent to the character 
// LATIN SMALL LETTER A WITH RING ABOVE (U+00e5).
    string cat = "A Cheshire c" + "\u0061\u030a" + "t";

    int loc = 0;
    StringComparison[] scValues = {
        StringComparison.CurrentCulture,
        StringComparison.CurrentCultureIgnoreCase,
        StringComparison.InvariantCulture,
        StringComparison.InvariantCultureIgnoreCase,
        StringComparison.Ordinal,
        StringComparison.OrdinalIgnoreCase };

// Clear the screen and display an introduction.
    Console.Clear();
    Console.WriteLine(intro);

// Display the current culture because culture affects the result. For example, 
// try this code example with the "sv-SE" (Swedish-Sweden) culture.

    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    Console.WriteLine("The current culture is \"{0}\" - {1}.", 
                       Thread.CurrentThread.CurrentCulture.Name,
                       Thread.CurrentThread.CurrentCulture.DisplayName);

// Display the string to search for and the string to search.
    Console.WriteLine("Search for the string \"{0}\" in the string \"{1}\"", 
                       CapitalAWithRing, cat);
    Console.WriteLine();

// Note that in each of the following searches, we look for 
// LATIN CAPITAL LETTER A WITH RING ABOVE in a string that contains 
// LATIN SMALL LETTER A WITH RING ABOVE. A result value of -1 indicates 
// the string was not found.
// Search using different values of StringComparison. Specify the start 
// index and count. 

    Console.WriteLine("Part 1: Start index and count are specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparison. Specify the 
// start index. 
    Console.WriteLine("\nPart 2: Start index is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, 0, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparison. 
    Console.WriteLine("\nPart 3: Neither start index nor count is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }
    }
}

/*
Note: This code example was executed on a console whose user interface 
culture is "en-US" (English-United States).

This code example produces the following results:

Find the first occurrence of a character using different values of StringComparison.
The current culture is "en-US" - English (United States).
Search for the string "Å" in the string "A Cheshire ca°t"

Part 1: Start index and count are specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

Part 2: Start index is specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

Part 3: Neither start index nor count is specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

*/

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 2.0
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: