Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Array.IndexOf-Methode: (Array, Object, Int32)

 

Veröffentlicht: Oktober 2016

Sucht das angegebene Objekt in einem Elementbereich eines eindimensionalen Arrays und gibt den Index seines ersten Auftretens zurück. Der Bereich erstreckt sich von einem angegebenen Index bis zum Ende des Arrays.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

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

Parameter

array
Type: System.Array

Das zu durchsuchende eindimensionale Array.

value
Type: System.Object

Das in array zu suchende Objekt.

startIndex
Type: System.Int32

Der Startindex für die Suche. 0 (null) ist in einem leeren Array gültig.

Rückgabewert

Type: System.Int32

Der Index des ersten Vorkommens von value, sofern gefunden, innerhalb des Bereichs von Elementen in array, der sich von startIndex bis zum letzten Element erstreckt, andernfalls die untere Grenze des Arrays minus 1.

Exception Condition
ArgumentNullException

array ist null.

ArgumentOutOfRangeException

startIndex liegt außerhalb des Bereichs der gültigen Indizes für array.

RankException

array ist mehrdimensional.

Diese Methode sucht ein eindimensionales Array, aus dem Element am Index startIndexbis zum letzten Element. Um zu bestimmen, ob value vorhanden ist, array, die Methode führt einen Gleichheitsvergleich durch Aufrufen der Equals Methode jedes Elements, bis eine Übereinstimmung gefunden wird. Dies bedeutet, dass, wenn das Element überschreibt die Object.Equals(Object) Methode, die Außerkraftsetzung wird aufgerufen.

Da die meisten Arrays auf eine unteren Grenze von 0 (null) haben, in der Regel bei Rückgabe dieser Methode – 1 value nicht gefunden. In dem seltenen Fall, die die untere Grenze des Arrays entspricht Int32.MinValue(0 x 80000000) und value nicht gefunden wird, gibt diese Methode Int32.MaxValue (0x7FFFFFFF).

Wenn startIndex gleich Array.Length, die Methode gibt-1 zurück. Wenn startIndex ist größer als Array.Length, löst die Methode eine ArgumentOutOfRangeException.

Diese Methode ist eine O (n)-Vorgang, in dem n ist die Anzahl von Elementen aus startIndex bis zum Ende des array.

Im Beispiel wird die folgenden drei Überladungen der IndexOf Methode, um den Index einer Zeichenfolge in einem Zeichenfolgenarray zu ermitteln:

  • IndexOf(Array, Object), um zu bestimmen, das erste Vorkommen der Zeichenfolge "the" in ein Zeichenfolgenarray.

  • IndexOf(Array, Object, Int32), um zu bestimmen, das erste Vorkommen der Zeichenfolge "the" in das vierte an die letzten Elemente eines Zeichenfolgenarrays.

  • IndexOf(Array, Object, Int32, Int32), um zu bestimmen, das erste Vorkommen der Zeichenfolge "the" in einer Zeichenfolge array, aus dem Element, das am Ende des Arrays die letzte erfolgreiche Übereinstimmung folgt.

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.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: