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, Int32)

 

Sucht das angegebene Objekt in einem Bereich von Elementen eines eindimensionalen Arrays und gibt den Index des ersten Vorkommens zurück. Der Bereich erstreckt sich von einem angegebenen Index für eine angegebene Anzahl von Elementen.

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

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

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.

count
Type: System.Int32

Die Anzahl der zu suchenden Elemente.

Rückgabewert

Type: System.Int32

Der Index des ersten Vorkommens von value, sofern gefunden, im array vom startIndex-Index bis startIndex + count - 1, 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.

- oder -

count ist kleiner als Null.

- oder -

startIndex und count geben keinen gültigen Abschnitt in array an.

RankException

array ist mehrdimensional.

Diese Methode sucht die Elemente einer eindimensionalen Arrayfrom startIndexauf startIndex plus count minus 1, wenn count ist größer als 0. 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 Methode, die Außerkraftsetzung wird aufgerufen.

Becausemost Arrays haben eine untere Grenze von 0 (null), gibt diese Methode in der Regel – 1 bei 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, wobei n ist count.

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. Zum Bestimmen des Werts von der count Argument, es subtrahiert die obere Grenze des Arrays aus den startIndex und hinzugefügt.

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
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: