Array.GetLowerBound Method

Gets the index of the first element of the specified dimension in the array.

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

public int GetLowerBound(
	int dimension
)

Parameters

dimension
Type: System.Int32

A zero-based dimension of the array whose starting index needs to be determined.

Return Value

Type: System.Int32
The index of the first element of the specified dimension in the array.

ExceptionCondition
IndexOutOfRangeException

dimension is less than zero.

-or-

dimension is equal to or greater than Rank.

GetLowerBound(0) returns the starting index of the first dimension of the array, and GetLowerBound(Rank - 1) returns the starting index of the last dimension of the array.

The GetLowerBound method always returns a value that indicates the index of the lower bound of the array, even if the array is empty.

Note that, although most arrays in the .NET Framework are zero-based (that is, the GetLowerBound method returns zero for each dimension of an array), the .NET Framework does support arrays that are not zero-based. Such arrays can be created with the CreateInstance(Type, Int32[], Int32[]) method, and can also be returned from unmanaged code.

This method is an O(1) operation.

The following example uses the GetLowerBound and GetUpperBound methods to display the bounds of a one-dimensional and two-dimensional array and to display the values of their array elements.

using System;

public class Example
{
   public static void Main()  
   {
      // Create a one-dimensional integer array. 
      int[] integers = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 };
      // Get the upper and lower bound of the array. 
      int upper = integers.GetUpperBound(0);
      int lower = integers.GetLowerBound(0);
      Console.WriteLine("Elements from index {0} to {1}:", lower, upper);
      // Iterate the array. 
      for (int ctr = lower; ctr <= upper; ctr++)
        Console.Write("{0}{1}{2}", ctr == lower ? "   " : "", 
                                  integers[ctr], 
                                  ctr < upper ? ", " : Environment.NewLine);

      Console.WriteLine();

      // Create a two-dimensional integer array. 
      int[,] integers2d= { {2, 4}, {3, 9}, {4, 16}, {5, 25}, 
                           {6, 36}, {7, 49}, {8, 64}, {9, 81} }; 
      // Get the number of dimensions.                                
      int rank = integers2d.Rank;  
      Console.WriteLine("Number of dimensions: {0}", rank);      
      for (int ctr = 0; ctr < integers2d.Rank - 1; ctr++)
        Console.WriteLine("   Dimension {0}: from {1} to {2}",
                          ctr, integers2d.GetLowerBound(ctr),
                          integers2d.GetUpperBound(ctr));

      // Iterate the 2-dimensional array and display its values.
      Console.WriteLine("   Values of array elements:");
      for (int outer = integers2d.GetLowerBound(0); outer <= integers2d.GetUpperBound(0);
           outer++)
        for (int inner = integers2d.GetLowerBound(1); inner <= integers2d.GetUpperBound(1);
             inner++)
           Console.WriteLine("      {3}{0}, {1}{4} = {2}", outer, inner,
                             integers2d.GetValue(outer, inner), "{", "}");

   }
}
// The example displays the following output: 
//       Elements from index 0 to 9: 
//          2, 4, 6, 8, 10, 12, 14, 16, 18, 20 
//        
//       Number of dimensions: 2 
//          Dimension 0: from 0 to 7 
//          Dimension 1: from 0 to 1 
//          Values of array elements: 
//             {0, 0} = 2 
//             {0, 1} = 4 
//             {1, 0} = 3 
//             {1, 1} = 9 
//             {2, 0} = 4 
//             {2, 1} = 16 
//             {3, 0} = 5 
//             {3, 1} = 25 
//             {4, 0} = 6 
//             {4, 1} = 36 
//             {5, 0} = 7 
//             {5, 1} = 49 
//             {6, 0} = 8 
//             {6, 1} = 64 
//             {7, 0} = 9 
//             {7, 1} = 81

.NET Framework

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

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft