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)

 

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

Stringa da cercare.

startIndex

Posizione iniziale della ricerca.

Valore restituito

Type: System.Int32

Posizione dell'indice in base zero di value se viene trovata la stringa; in caso contrario, -1.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 della stringa, il metodo restituisce -1.

Questo metodo esegue una ricerca per parola (tra maiuscole e minuscole e cultura) utilizzando la lingua corrente.La ricerca inizia in corrispondenza le startIndex la posizione di questa istanza del 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 costituito solo da uno o più caratteri ignorabili il IndexOf(String, Int32) metodo restituisce sempre startIndex, ovvero la posizione del carattere che inizia la ricerca.Nell'esempio seguente il IndexOf(String, Int32) metodo viene utilizzato per individuare la posizione di un segno (U + 00AD) seguita da una "m" in due stringhe.Solo una delle stringhe contiene la sottostringa richiesta.Se si esegue l'esempio .NET Framework 4 o versioni successive, in entrambi i casi, poiché il segno è 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 di stringhe che sostituiscono i valori predefiniti e chiamare invece metodi che richiedono parametri per specificare in modo esplicito.Per trovare il primo indice di una sottostringa successivo a una posizione particolare carattere utilizzando le regole di confronto delle impostazioni cultura corrente, chiamare il IndexOf(String, Int32, StringComparison) overload del metodo con un valore di StringComparison.CurrentCulture per il comparisonType parametro.

Nell'esempio seguente esegue 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 4.5
.NET Framework
Disponibile da 1.1
Portable Class Library
Supportato in: portable .NET platforms
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: