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.IndexOf (String, Int32)

 

Data di pubblicazione: ottobre 2016

Restituisce l'indice in base zero della prima occorrenza della stringa specificata in questa istanza. La ricerca ha inizio alla posizione del carattere specificata.

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

public int IndexOf(
	string value,
	int startIndex
)

Parametri

value
Type: System.String

Stringa da cercare.

startIndex
Type: System.Int32

Posizione iniziale della ricerca.

Valore restituito

Type: System.Int32

Posizione dell'indice in base zero di value dall'inizio dell'istanza corrente se la stringa viene trovata oppure -1 in caso contrario. Se value è String.Empty, il valore restituito è startIndex.

Exception Condition
ArgumentNullException

value è null.

ArgumentOutOfRangeException

startIndex è minore di 0 (zero) o maggiore della lunghezza della stringa.

Numerazione dell'indice inizia da 0. Il parametro startIndex può avere un valore compreso tra 0 e la lunghezza dell'istanza della stringa. Se startIndex è uguale alla lunghezza dell'istanza di stringa, il metodo restituisce -1.

Questo metodo esegue una ricerca di word (maiuscole/minuscole e distinzione di impostazioni cultura) utilizzando le impostazioni cultura correnti. La ricerca inizia in corrispondenza di startIndex posizione di questa istanza di carattere e continua fino all'ultima posizione.

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, se value contiene un carattere ignorabile, il risultato è equivalente alla ricerca con il carattere rimosso. Se value è composta solo da uno o più caratteri ignorabili, il IndexOf(String, Int32) metodo restituisce sempre startIndex, ovvero la posizione del carattere in cui inizia la ricerca. Nell'esempio seguente, il IndexOf(String, Int32) metodo viene utilizzato per trovare la posizione di un segno meno facoltativo (U + 00AD) seguita da una "m" in due stringhe. Solo una delle stringhe contiene la sottostringa richiesta. Se viene eseguito l'esempio di .NET Framework 4 o versioni successive, in entrambi i casi, poiché il segno meno facoltativo è un carattere ignorabile, il metodo restituisce l'indice di "m" nella 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 meno facoltativo, ma l'indice di "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));
      Console.WriteLine(s2.IndexOf(searchString, 2));
   }
}
// The example displays the following output:
//       4
//       3

Note per i chiamanti:

Come spiegato in Procedure consigliate per l'utilizzo di stringhe in .NET Framework, è consigliabile evitare di chiamare i metodi di confronto tra stringhe che sostituiscono i valori predefiniti e chiamano invece metodi che richiedono parametri per specificare in modo esplicito. Per trovare il primo indice di una sottostringa che si verifica dopo una particolare posizione di carattere utilizzando le regole di confronto delle impostazioni cultura correnti, chiamare il IndexOf(String, Int32, StringComparison) overload del metodo con un valore di StringComparison.CurrentCulture per il relativo comparisonType parametro.

Nell'esempio seguente viene eseguita la ricerca di tutte le occorrenze di una stringa specificata all'interno di una stringa di destinazione.

using System;

public class IndexOfTest {
    public static void Main() {

        string strSource = "This is the string which we will perform the search on";

        Console.WriteLine("The search string is:{0}\"{1}\"{0}", Environment.NewLine, strSource);

        string strTarget = "";
        int found = 0;
        int totFinds = 0;

        do {
            Console.Write("Please enter a search value to look for in the above string (hit Enter to exit) ==> ");

            strTarget = Console.ReadLine();

            if (strTarget != "") {

                for (int i = 0; i < strSource.Length; i++) {

                    found = strSource.IndexOf(strTarget, i);

                    if (found >= 0) {
                        totFinds++;
                        i = found;
                    }
                    else
                        break;
                }
            }
            else
                return;

            Console.WriteLine("{0}The search parameter '{1}' was found {2} times.{0}",
                    Environment.NewLine, strTarget, totFinds);

            totFinds = 0;

        } while ( true );
    }
}

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
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: