Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo String.LastIndexOf (String, Int32, Int32, StringComparison)

 

Restituisce la posizione nell'indice in base zero dell'ultima occorrenza di una stringa specificata all'interno di questa istanza. La ricerca inizia in una posizione del carattere specificata e continua all'indietro verso l'inizio della stringa per il numero di posizioni dei caratteri indicato. Un parametro specifica il tipo di confronto da effettuare durante la ricerca della stringa specificata.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public int LastIndexOf(
	string value,
	int startIndex,
	int count,
	StringComparison comparisonType
)

Parametri

value
Type: System.String

Stringa da cercare.

startIndex
Type: System.Int32

Posizione iniziale della ricerca. La ricerca procede da startIndex verso l'inizio dell'istanza.

count
Type: System.Int32

Numero di posizioni dei caratteri da esaminare.

comparisonType
Type: System.StringComparison

Uno dei valori di enumerazione che specifica le regole di ricerca.

Valore restituito

Type: System.Int32

Posizione dell'indice iniziale in base zero del parametro value se tale stringa viene trovata oppure -1 se non viene trovata o se l'istanza corrente è uguale a String.Empty. Se value è String.Empty, il valore restituito sarà il più piccolo tra startIndex e l'ultima posizione dell'indice in questa istanza.

Exception Condition
ArgumentNullException

value è null.

ArgumentOutOfRangeException

count è negativo.

-oppure-

L'istanza corrente non è uguale a String.Empty e startIndex è negativo.

-oppure-

L'istanza corrente non è uguale a String.Empty e startIndex è maggiore della lunghezza di questa istanza.

-oppure-

L'istanza corrente non è uguale a String.Empty e il risultato di startIndex + 1 - count specifica una posizione non inclusa in questa istanza.

-oppure-

L'istanza corrente equivale a String.Empty e start è minore di -1 o maggiore di zero.

-oppure-

L'istanza corrente equivale a String.Empty e count è maggiore di 1.

ArgumentException

comparisonType non è un valore valido di System.StringComparison.

Numerazione dell'indice inizia da zero. Vale a dire il primo carattere nella stringa è in corrispondenza dell'indice zero e l'ultimo si trova in Length - 1.

La ricerca inizia in corrispondenza di startIndex i caratteri di posizione e procede a ritroso fino a quando non value viene trovato o count sono state esaminate le posizioni dei caratteri. Ad esempio, se startIndex è Length - 1, il metodo esegue la ricerca all'indietro count l'ultimo carattere nella stringa di caratteri.

La comparisonType parametro consente di ricercare il value parametro utilizzando le impostazioni cultura correnti o invarianti, usando una ricerca con distinzione maiuscole/minuscole o minuscole e utilizzando regole di confronto ordinale o word.

Note per i chiamanti:

I set di caratteri includono caratteri ignorabili, ovvero caratteri che non sono considerati durante l'esecuzione di un confronto linguistico o dipendente dalle impostazioni cultura. In una ricerca dipendente dalle impostazioni cultura (ovvero se comparisonType non è StringComparison.Ordinal o StringComparison.OrdinalIgnoreCase), se value contiene un carattere ignorable, il risultato è equivalente alla ricerca con il carattere rimosso. Se value è composta solo da uno o più caratteri ignorabili, il LastIndexOf(String, Int32, Int32, StringComparison) metodo restituisce sempre startIndex, ovvero la posizione del carattere in corrispondenza del quale inizia la ricerca.

Nell'esempio seguente, il LastIndexOf(String, Int32, Int32, StringComparison) metodo viene utilizzato per trovare la posizione di un segno meno facoltativo (U + 00AD) seguito da una "m" in tutti, ma la posizione del primo carattere prima di "m" finale in due stringhe. Solo una delle stringhe contiene la sottostringa richiesta. Se viene eseguito l'esempio di .NET Framework 4 o in un secondo momento, in entrambi i casi, poiché il segno meno facoltativo è un carattere ignorabile, il metodo restituisce l'indice di "m" nella stringa quando viene eseguito un confronto con distinzione delle impostazioni cultura. Quando esegue un confronto ordinale, tuttavia, trova la sottostringa solo nella prima stringa. Si noti che nel caso della prima stringa, che include il segno meno facoltativo seguito da una "m", il metodo non restituisce l'indice del segno, ma l'indice di "m" quando si esegue un confronto con distinzione delle impostazioni cultura. Il metodo restituisce l'indice del segno meno facoltativo nella prima stringa solo quando esegue un confronto 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

Il seguente exampledemonstrates tre overload del LastIndexOf metodo trovare l'ultima occorrenza di una stringa all'interno di un'altra stringa utilizzando i diversi valori della StringComparison enumerazione.

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

*/

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 2.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: