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)

Signale l'index de base zéro de la première occurrence de la chaîne spécifiée dans cette instance. La recherche commence à une position de caractère spécifiée et examine un nombre défini de positions de caractère.

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

public int IndexOf(
	string value,
	int startIndex,
	int count
)

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.

Valeur de retour

Type : System.Int32
Position d'index de base zéro de value si cette chaîne est disponible ou -1 si elle est introuvable. Si value est String.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 chaîne.

ou

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

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.

Cette méthode effectue une recherche de mots (respectant la casse et spécifique à la culture) à l'aide de la culture en cours. 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.

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, si value contient un caractère ignorable, le résultat est équivalent à la 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) 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) 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. 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 ».


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));
      Console.WriteLine(s2.IndexOf(searchString, 2, 4));
   }
}
// The example displays the following output:
//       4
//       3


Remarques à l'attention des appelants

Comme expliqué dans Meilleures pratiques pour l'utilisation de chaînes dans le .NET Framework, nous vous recommandons d'éviter d'appeler des méthodes de comparaison de chaînes qui substituent des valeurs par défaut et d'appeler à la place des méthodes qui requièrent des paramètres spécifiés explicitement. Pour utiliser les règles de comparaison de la culture actuelle pour exécuter cette opération, appelez la surcharge de méthode IndexOf(String, Int32, Int32, StringComparison) avec une valeur de StringComparison.CurrentCulture pour son paramètre comparisonType.

L'exemple suivant recherche l'index de toutes les occurrences de la chaîne « he » dans une sous-chaîne d'une autre chaîne. Notez que le nombre de caractères à rechercher doit être recalculé pour chaque itération de la recherche.


// Sample for String.IndexOf(String, Int32, Int32)
using System;

class Sample {
    public static void Main() {

    string br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+-";
    string br2 = "0123456789012345678901234567890123456789012345678901234567890123456";
    string str = "Now is the time for all good men to come to the aid of their party.";
    int start;
    int at;
    int end;
    int count;

    end = str.Length;
    start = end/2;
    Console.WriteLine();
    Console.WriteLine("All occurrences of 'he' from position {0} to {1}.", start, end-1);
    Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str);
    Console.Write("The string 'he' occurs at position(s): ");

    count = 0;
    at = 0;
    while((start <= end) && (at > -1))
        {
// start+count must be a position within -str-.
        count = end - start;
        at = str.IndexOf("he", start, count);
        if (at == -1) break;
        Console.Write("{0} ", at);
        start = at+1;
        }
    Console.WriteLine();
    }
}
/*
This example produces the following results:

All occurrences of 'he' from position 33 to 66.
0----+----1----+----2----+----3----+----4----+----5----+----6----+-
0123456789012345678901234567890123456789012345678901234567890123456
Now is the time for all good men to come to the aid of their party.

The string 'he' occurs at position(s): 45 56

*/


.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é

AJOUTER
Afficher:
© 2014 Microsoft