See an IndexOutOfRangeException. An array element access that is not in range causes this.
IndexOutOfRangeException. This error happens in C# programs that use array types. This exception will typically occur when a statement tries to access an element at an index greater than the maximum allowable index.ExceptionArrayArray Length
First this program shows the usage of the array index access. When you create an array of many elements, you can access those elements through the indices of zero through the maximum length minus one.
Note: This means that for an array of 100 elements, you can access array through array.
Important: The top index you can access equals the total length minus one. If you access an index past 99, you get an IndexOutOfRangeException.
Elements: You can load and store values into these elements, which are considered variables and not values.
C# program that accesses array out of bounds
static void Main()
// Allocate an array of one-hundred integers.
// ... Then assign to positions in the array.
// ... Assigning past the last element will throw.
int array = new int;
array = 1;
array = 2;
array = 3;
Unhandled Exception: System.IndexOutOfRangeException:
Index was outside the bounds of the array.
at Program.Main() in ...Program.cs:line 8
To avoid the exception, you can insert bounds checks, as with an if-statement. An alternative is to simply make the array length much larger when you allocate it. If you avoid if-statement checks, you can improve performance.If
Negative array indices. You will encounter the IndexOutOfRangeException if you try to assign to an index in an array that is negative. In the C# language, native arrays are indexed beginning at zero.
Note: The first element is always available at index zero. There are ways to simulate non-zero based arrays.
Summary. Here we saw the IndexOutOfRangeException. We explained the relation between array lengths and array indices. You can always access the array indexes up to the array length minus one.
Also: This off-by-one difference is critical to keep in mind in some programs. Errors in this translation can be serious.