Take a look at this (rarely used) method. From Docs:
public static Array CreateInstance(Type elementType, int[] lengths, int[] lowerBounds)
Creates a multidimensional Array of the specified Type and dimension lengths, with the specified lower bounds.
With it, you can create an array with indices from -5 ... +5
. If you ever use this kind of array, then GetUpperBound()
suddenly becomes a lot more useful than GetLength()-1
. There also exists a GetLowerBound()
.
But the C# support for this kind of arrays is low, you cannot use []
. You would only need those methods in combination with the Array.GetValue() and SetValue() methods.