Windows Dev Center

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
Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

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

Signale la position d'index de base zéro de la dernière occurrence d'une chaîne spécifiée dans cette instance. La recherche commence à une position de caractère spécifiée et se poursuit vers le début de la chaîne pour le nombre spécifié de positions de caractères. Paramètre qui spécifie le type de comparaison à effectuer lors de la recherche de la chaîne spécifiée.

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

public int LastIndexOf(
	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. La recherche se poursuit à partir de startIndex vers le début de cette instance.
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
La position de départ basée sur zéro du paramètre d'value si cette chaîne est trouvée, ou -1 si est introuvable ou si l'instance actuelle est égale String.Empty. Si value est String.Empty, la valeur de retour est la plus petite de startIndex et la dernière position d'index dans cette instance.

ExceptionCondition
ArgumentNullException

value a la valeur null.

ArgumentOutOfRangeException

count est négatif.

ou

L'instance actuelle n'est pas égale à String.Empty, et startIndex est négatif.

ou

L'instance actuelle n'est pas égale à String.Empty, et startIndex est supérieur à la longueur de cette instance.

ou

L'instance actuelle n'est pas égale à String.Empty et startIndex + 1 - count spécifie une position qui n'est pas dans cette instance.

ou

L'instance actuelle est égale à String.Empty et start est inférieur à -1 ou supérieur à zéro.

ou

L'instance actuelle est égale à String.Empty et count est supérieur à 1.

ArgumentException

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

La numérotation de l'index commence à zéro. Cela signifie que le premier caractère de la chaîne est situé à l'index zéro et que le dernier est situé à Length - 1.

La recherche commence à la position de caractère startIndex et s'exécute vers l'arrière jusqu'à ce que value soit atteint ou que les positions de caractère count aient été examinées. Par exemple, si startIndex est Length - 1, la méthode recherche vers l'arrière count caractères à partir du dernier caractère de la chaîne.

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 LastIndexOf(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 LastIndexOf(String, Int32, Int32, StringComparison) est utilisée pour rechercher la position d'un trait d'union (U+00AD) suivi de « m » partout sauf dans la première position de caractère avant le « m » final des deux chaînes. 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";
      int position;

      position = s1.LastIndexOf('m');
      if (position >= 1) {
         Console.WriteLine(s1.LastIndexOf(searchString, position, position, StringComparison.CurrentCulture));
         Console.WriteLine(s1.LastIndexOf(searchString, position, position, StringComparison.Ordinal));
      }      

      position = s2.LastIndexOf('m');
      if (position >= 1) { 
         Console.WriteLine(s2.LastIndexOf(searchString, position, position, StringComparison.CurrentCulture));
         Console.WriteLine(s2.LastIndexOf(searchString, position, position, StringComparison.Ordinal));
      }
   }
}
// The example displays the following output:
//       4
//       3
//       3
//       -1


L'exemple suivant illustre trois surcharges de la méthode LastIndexOf qui recherchent la derniè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.LastIndexOf(String, ..., StringComparison) methods.

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

class Sample 
{
    public static void Main() 
    {
    string intro = "Find the last 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 StringComparsion. Specify the start 
// index and count. 

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

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

// Search using different values of StringComparsion. 
    Console.WriteLine("\nPart 3: Neither start index nor count is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.LastIndexOf(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 last 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é

Afficher:
© 2015 Microsoft