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

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

Signale l'index de base zéro de la première occurrence de la chaîne spécifiée dans l'objet String en cours. Les paramètres spécifient la position de recherche initiale dans la chaîne en cours, le nombre de caractères de la chaîne en cours à rechercher 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,
	int count,
	StringComparison comparisonType
)

Paramètres

value
Type : System.String
Chaîne à rechercher.
startIndex
Type : System.Int32
Position de départ de la recherche.
count
Type : System.Int32
Nombre de positions de caractère à examiner.
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 si cette chaîne est disponible ou -1 si elle est introuvable. Si value est Empty, la valeur de retour est startIndex.

ExceptionCondition
ArgumentNullException

value a la valeur null.

ArgumentOutOfRangeException

count ou startIndex est négatif.

ou

startIndex est supérieur à la longueur de cette instance.

ou

count est supérieur à la longueur de cette chaîne moins startIndex.

ArgumentException

comparisonType n'est pas une valeur System.StringComparison valide.

La numérotation de l'index commence à 0 (zéro). Le paramètre startIndex peut varier entre 0 et la longueur de l'instance de chaîne.

La recherche commence à startIndex et se poursuit jusqu'à startIndex + count -1. Le caractère figurant à la position startIndex + count n'est pas inclus dans la recherche.

Le paramètre comparisonType permet de rechercher le paramètre value à l'aide de la culture actuelle ou de la culture dite indifférente, en respectant ou non la casse et en utilisant des règles de comparaison des mots ou 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 pouvant être ignoré, la méthode IndexOf(String, Int32, Int32, StringComparison) retourne toujours startIndex, qui est la position de caractère à laquelle la recherche commence.

Dans l'exemple suivant, la méthode IndexOf(String, Int32, Int32, StringComparison) est utilisée pour rechercher dans deux chaînes la position d'un trait d'union conditionnel (U+00AD) suivi de « m » commençant par la position de caractère trois à six. Une seule des chaînes contient la sous-chaîne requise. Si l'exemple est exécuté sur .NET Framework 4 ou version ultérieure, dans les deux cas, car le tiret conditionnel est un caractère ignorable, la méthode retourne l'index « m » dans la chaîne lorsqu'il effectue une comparaison dépendante de la culture. Lorsqu'elle effectue une comparaison ordinale, toutefois, il recherche la sous-chaîne uniquement dans la première chaîne. Notez que dans le cas de la première chaîne, qui inclut le trait d'union conditionnel suivi de « m », la méthode ne parvient pas à retourner l'index du trait d'union conditionnel mais retourne à la place l'index du « m » lorsqu'il effectue une comparaison dépendante de la culture. 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, 4, StringComparison.CurrentCulture));
      Console.WriteLine(s1.IndexOf(searchString, 2, 4, StringComparison.Ordinal));
      Console.WriteLine(s2.IndexOf(searchString, 2, 4, StringComparison.CurrentCulture));
      Console.WriteLine(s2.IndexOf(searchString, 2, 4, StringComparison.Ordinal));
   }
}
// The example displays the following output:
//       4
//       3
//       3
//       -1


L'exemple suivant illustre trois surcharges de la méthode IndexOf qui recherchent la première occurrence d'une chaîne dans une autre chaîne en utilisant différentes valeurs de l'énumération StringComparison.


// 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

*/


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.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é

AJOUTER
Afficher:
© 2015 Microsoft