Array.IndexOf(Of T) Method (T(), T, Int32)

Searches for the specified object in a range of elements of a one dimensional array, and returns the index of its first occurrence. The range extends from a specified index to the end of the array.

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

Public Shared Function IndexOf(Of T) ( _
	array As T(), _
	value As T, _
	startIndex As Integer _
) As Integer

Type Parameters


The type of the elements of the array.


Type: T()

The one-dimensional, zero-based array to search.

Type: T

The object to locate in array.

Type: System.Int32

The zero-based starting index of the search. 0 (zero) is valid in an empty array.

Return Value

Type: System.Int32
The zero-based index of the first occurrence of value within the range of elements in array that extends from startIndex to the last element, if found; otherwise, –1.


array is Nothing.


startIndex is outside the range of valid indexes for array.

This method searches a one-dimensional array from the element at startIndex to the end of the array. To determine whether value exists in array, the method performs an equality comparison by calling the T.Equals method on every element. This means that if T overrides the Equals method, that override is called.

If startIndex equals Length, the method returns -1. If startIndex is greater than Array.Length, the method throws an ArgumentOutOfRangeException.

This method is an O(n) operation, where n is the number of elements from startIndex to the end of array.

The following example demonstrates all three generic overloads of the IndexOf method. An array of strings is created, with one entry that appears twice, at index location 0 and index location 5. The IndexOf(Of T)(T(), T) method overload searches the array from the beginning, and finds the first occurrence of the string. The IndexOf(Of T)(T(), T, Int32) method overload is used to search the array beginning with index location 3 and continuing to the end of the array, and finds the second occurrence of the string. Finally, the IndexOf(Of T)(T(), T, Int32, Int32) method overload is used to search a range of two entries, beginning at index location two; it returns –1 because there are no instances of the search string in that range.

Imports System

Public Class Example

    Public Shared Sub Main()

        Dim dinosaurs() As String = { "Tyrannosaurus", _
            "Amargasaurus", _
            "Mamenchisaurus", _
            "Brachiosaurus", _
            "Deinonychus", _
            "Tyrannosaurus", _
            "Compsognathus" }

        For Each dinosaur As String In dinosaurs

        Console.WriteLine(vbLf & _
            "Array.IndexOf(dinosaurs, ""Tyrannosaurus""): {0}", _
            Array.IndexOf(dinosaurs, "Tyrannosaurus"))

        Console.WriteLine(vbLf & _
            "Array.IndexOf(dinosaurs, ""Tyrannosaurus"", 3): {0}", _
            Array.IndexOf(dinosaurs, "Tyrannosaurus", 3))

        Console.WriteLine(vbLf & _
            "Array.IndexOf(dinosaurs, ""Tyrannosaurus"", 2, 2): {0}", _
            Array.IndexOf(dinosaurs, "Tyrannosaurus", 2, 2))

    End Sub 
End Class 

' This code example produces the following output: 


'Array.IndexOf(dinosaurs, "Tyrannosaurus"): 0 

'Array.IndexOf(dinosaurs, "Tyrannosaurus", 3): 5 

'Array.IndexOf(dinosaurs, "Tyrannosaurus", 2, 2): -1

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Portable Class Library

Supported in: Portable Class Library
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2015 Microsoft