IndexOf(T) Method (T[], T, Int32, Int32)

Array.IndexOf<'T> Method ('T[], 'T, Int32, 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 for a specified number of elements.

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

static member IndexOf<'T> : 
        array:'T[] *
        value:'T *
        startIndex:int *
        count:int -> int


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.

Type: System.Int32

The number of elements in the section to search.

Return Value

Type: System.Int32

The zero-based index of the first occurrence of value within the range of elements in array that starts at startIndex and contains the number of elements specified in count, if found; otherwise, –1.

Type Parameters


The type of the elements of the array.

Exception Condition

array is null.


startIndex is outside the range of valid indexes for array.


count is less than zero.


startIndex and count do not specify a valid section in array.

This method searchesthe elements of a one-dimensional array from startIndex to startIndex plus count minus 1, if count is greater than 0. 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 Array.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 count.

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<'T>('T[], 'T) method overload searches the array from the beginning, and finds the first occurrence of the string. The IndexOf<'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<'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.

No code example is currently available or this language may not be supported.

Universal Windows Platform
Available since 4.5
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
© 2015 Microsoft