Array::IndexOf Method (Array^, Object^, 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:
static int IndexOf(
	Array^ array,
	Object^ value,
	int startIndex
)

Parameters

array
Type: System::Array^

The one-dimensional array to search.

value
Type: System::Object^

The object to locate in array.

startIndex
Type: System::Int32

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

Return Value

Type: System::Int32

The index of the first occurrence of value, if it’s found, within the range of elements in array that extends from startIndex to the last element; otherwise, the lower bound of the array minus 1.

Exception Condition
ArgumentNullException

array is null.

ArgumentOutOfRangeException

startIndex is outside the range of valid indexes for array.

RankException

array is multidimensional.

This method searches a one-dimensional array from the element at index startIndexto the last element. To determine whether value exists in array, the method performs an equality comparison by calling the Equals method of every element until it finds a match. This means that if the element overrides the Object::Equals(Object^) method, that override is called.

Because most arrays have a lower bound of zero, this method generally returns –1 if value isn’t found. In the rare case that the lower bound of the array is equal to Int32::MinValue(0x80000000) and value isn’t found, this method returns Int32::MaxValue (0x7FFFFFFF).

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 the number of elements from startIndex to the end of array.

The example calls the following three overloads of the IndexOf method to find the index of a string in a string array:

  • IndexOf(Array^, Object^), to determine the first occurrence of the string "the" in a string array.

  • IndexOf(Array^, Object^, Int32), to determine the first occurrence of the string "the" in the fourth to the last elements of a string array.

  • IndexOf(Array^, Object^, Int32, Int32), to determine the first occurrence of the string "the" in a string array from the element that follows the last successful match to the end of the array.

using namespace System;

void main()
{
   // Create a string array with 3 elements having the same value.
   array<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
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Return to top
Show: