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

 

Data di pubblicazione: novembre 2016

Cerca l'oggetto specificato e restituisce l'indice della prima occorrenza in un intervallo di elementi di una matrice unidimensionale. L'intervallo si estende da un indice specificato fino alla fine della matrice.

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

public static int IndexOf(
	Array array,
	object value,
	int startIndex
)

Parametri

array
Type: System.Array

Matrice unidimensionale da cercare.

value
Type: System.Object

Oggetto da trovare in array.

startIndex
Type: System.Int32

Indice iniziale della ricerca. 0 (zero) è valido in una matrice vuota.

Valore restituito

Type: System.Int32

Indice della prima occorrenza di value, se trovato, all'interno degli elementi nell'oggetto array che si estende da startIndex fino all'ultimo elemento; in caso contrario, verrà restituito il limite inferiore della matrice meno 1.

Exception Condition
ArgumentNullException

array è null.

ArgumentOutOfRangeException

startIndex non è compreso nell'intervallo di indici validi per array.

RankException

array è multidimensionale.

Questo metodo cerca in una matrice unidimensionale dall'elemento in corrispondenza dell'indice startIndexall'ultimo elemento. Per determinare se value esiste array, il metodo esegue un confronto di uguaglianza chiamando il Equals metodo di ogni elemento fino a quando non viene trovata una corrispondenza. Ciò significa che se l'elemento esegue l'override di Object.Equals(Object) , tale sostituzione viene chiamato.

Poiché la maggior parte delle matrici hanno un limite inferiore pari a zero, questo metodo in genere restituisce – 1 se value non viene trovato. Nel raro caso in cui il limite inferiore della matrice è uguale a Int32.MinValue(0x80000000) e value non viene trovato, questo metodo restituisce Int32.MaxValue (0x7FFFFFFF).

Se startIndex è uguale a Array.Length, il metodo restituisce -1. Se startIndex è maggiore di Array.Length, il metodo genera un ArgumentOutOfRangeException.

Questo metodo è un'operazione O (n) operazione, in cui n è il numero di elementi da startIndex alla fine di array.

Nell'esempio viene chiamato tre overload del seguenti il IndexOf metodo per trovare l'indice di una stringa in una matrice di stringhe:

  • IndexOf(Array, Object), per determinare la prima occorrenza della stringa "the" in una matrice di stringhe.

  • IndexOf(Array, Object, Int32), per determinare la prima occorrenza della stringa "the" per la quarta agli ultimi elementi di una matrice di stringhe.

  • IndexOf(Array, Object, Int32, Int32), per determinare la prima occorrenza della stringa "the" in una stringa di matrice dall'elemento che segue l'ultima corrispondenza corretta alla fine della matrice.

using System;

public class Example
{
    public static void Main()
    {
       // Create a string array with 3 elements having the same value.
       String[] strings = { "the", "quick", "brown", "fox", "jumps",
                            "over", "the", "lazy", "dog", "in", "the",
                            "barn" };

       // Display the elements of the array.
       Console.WriteLine("The array contains the following values:");
       for (int i = strings.GetLowerBound(0); i <= strings.GetUpperBound(0); i++)
          Console.WriteLine("   [{0,2}]: {1}", i, strings[i]);

       // Search for the first occurrence of the duplicated value.
       String searchString = "the";
       int index = Array.IndexOf(strings, searchString);
       Console.WriteLine("The first occurrence of \"{0}\" is at index {1}.",
                         searchString, index);

       // Search for the first occurrence of the duplicated value in the last section of the array.
       index = Array.IndexOf(strings, searchString, 4);
       Console.WriteLine("The first occurrence of \"{0}\" between index 4 and the end is at index {1}.",
                         searchString, index);

       // Search for the first occurrence of the duplicated value in a section of the array.
       int position = index + 1;
       index = Array.IndexOf(strings, searchString, position, strings.GetUpperBound(0) - position + 1);
       Console.WriteLine("The first occurrence of \"{0}\" between index {1} and index {2} is at index {3}.",
                         searchString, position, strings.GetUpperBound(0), index);
    }
 }
// The example displays the following output:
//    The array contains the following values:
//       [ 0]: the
//       [ 1]: quick
//       [ 2]: brown
//       [ 3]: fox
//       [ 4]: jumps
//       [ 5]: over
//       [ 6]: the
//       [ 7]: lazy
//       [ 8]: dog
//       [ 9]: in
//       [10]: the
//       [11]: barn
//    The first occurrence of "the" is at index 0.
//    The first occurrence of "the" between index 4 and the end is at index 6.
//    The first occurrence of "the" between index 7 and index 11 is at index 10.

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