Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

Array.GetLowerBound Method

Gets the lower bound of the specified dimension in the Array.

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

[SecuritySafeCriticalAttribute]
public int GetLowerBound(
	int dimension
)

Parameters

dimension
Type: System.Int32
A zero-based dimension of the Array whose lower bound needs to be determined.

Return Value

Type: System.Int32
The lower bound 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 lower bound for the indexes of the first dimension of the Array, and GetLowerBound(Rank - 1) returns the lower bound of the last dimension of the Array.

This method is an O(1) operation.

Platform Notes

Silverlight for Windows Phone Silverlight for Windows Phone

 Array.GetLowerBound(System.Int32) does not throw IndexOutOfRangeException when the passed in dimension is equal to the rank of the array. Instead, it returns zero as the lower bound value.

The following code example uses GetLowerBound and GetUpperBound to initialize a one-dimensional array and a multidimensional array.


using System;
public class Example
{

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {

      // Creates a new one-dimensional Array of type Int32.
      Array my1DIntArray = Array.CreateInstance(typeof(Int32), 5);

      // Uses GetLowerBound and GetUpperBound in the for loop.
      for (int i = my1DIntArray.GetLowerBound(0); i <= my1DIntArray.GetUpperBound(0); i++)
         my1DIntArray.SetValue(i + 1, i);

      // Displays the bounds and values of the one-dimensional Array.
      outputBlock.Text += "One-dimensional Array:" + "\n";
      outputBlock.Text += "Rank\tLower\tUpper" + "\n";
      outputBlock.Text += String.Format("{0}\t{1}\t{2}", 0, my1DIntArray.GetLowerBound(0), my1DIntArray.GetUpperBound(0)) + "\n";
      outputBlock.Text += "Values:" + "\n";
      PrintValues(outputBlock, my1DIntArray);
      outputBlock.Text += "\n";

      // Creates a new three-dimensional Array of type Int32.
      Array my3DIntArray = Array.CreateInstance(typeof(Int32), 2, 3, 4);

      // Uses GetLowerBound and GetUpperBound in the for loop.
      for (int i = my3DIntArray.GetLowerBound(0); i <= my3DIntArray.GetUpperBound(0); i++)
         for (int j = my3DIntArray.GetLowerBound(1); j <= my3DIntArray.GetUpperBound(1); j++)
            for (int k = my3DIntArray.GetLowerBound(2); k <= my3DIntArray.GetUpperBound(2); k++)
            {
               my3DIntArray.SetValue((i * 100) + (j * 10) + k, i, j, k);
            }

      // Displays the bounds and values of the multidimensional Array.
      outputBlock.Text += "Multidimensional Array:" + "\n";
      outputBlock.Text += "Rank\tLower\tUpper" + "\n";
      for (int i = 0; i < my3DIntArray.Rank; i++)
         outputBlock.Text += String.Format("{0}\t{1}\t{2}", i, my3DIntArray.GetLowerBound(i), my3DIntArray.GetUpperBound(i)) + "\n";
      outputBlock.Text += "Values:" + "\n";
      PrintValues(outputBlock, my3DIntArray);
   }


   public static void PrintValues(System.Windows.Controls.TextBlock outputBlock, Array myArr)
   {
      System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
      int i = 0;
      int cols = myArr.GetLength(myArr.Rank - 1);
      while (myEnumerator.MoveNext())
      {
         if (i < cols)
         {
            i++;
         }
         else
         {
            outputBlock.Text += "\n";
            i = 1;
         }
         outputBlock.Text += String.Format("\t{0}", myEnumerator.Current);
      }
      outputBlock.Text += "\n";
   }
}
/*
This code produces the following output.

One-dimensional Array:
Rank    Lower    Upper
0    0    4
Values:
    1    2    3    4    5

Multidimensional Array:
Rank    Lower    Upper
0    0    1
1    0    2
2    0    3
Values:
    0    1    2    3
    10    11    12    13
    20    21    22    23
    100    101    102    103
    110    111    112    113
    120    121    122    123
*/


Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

Show:
© 2014 Microsoft