Array.GetLowerBound Method

July 28, 2014

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

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

'Declaration
Public Function GetLowerBound ( _
	dimension As Integer _
) As Integer

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.

Version Notes

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.



Public Class Example

   Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)

      ' Creates a new one-dimensional Array of type Int32.
      Dim my1DIntArray As Array = Array.CreateInstance(GetType(Int32), 5)

      ' Uses GetLowerBound and GetUpperBound in the for loop.
      Dim i As Integer
      For i = my1DIntArray.GetLowerBound(0) To my1DIntArray.GetUpperBound(0)
         my1DIntArray.SetValue(i + 1, i)
      Next i
      ' Displays the bounds and values of the one-dimensional Array.
      outputBlock.Text &= "One-dimensional Array:" & vbCrLf
      outputBlock.Text &= "Rank" + ControlChars.Tab + "Lower" _
         + ControlChars.Tab + "Upper" & vbCrLf
      outputBlock.Text &= String.Format("{0}" + ControlChars.Tab + "{1}" _
         + ControlChars.Tab + "{2}", 0, my1DIntArray.GetLowerBound(0), _
         my1DIntArray.GetUpperBound(0)) & vbCrLf
      outputBlock.Text &= "Values:" & vbCrLf
      PrintValues(outputBlock, my1DIntArray)
      outputBlock.Text &= vbCrLf

      ' Creates a new three-dimensional Array of type Int32.
      Dim my3DIntArray As Array = _
         Array.CreateInstance(GetType(Int32), 2, 3, 4)

      ' Uses GetLowerBound and GetUpperBound in the for loop.
      Dim j, k As Integer
      For i = my3DIntArray.GetLowerBound(0) _
      To my3DIntArray.GetUpperBound(0)
         For j = my3DIntArray.GetLowerBound(1) _
         To my3DIntArray.GetUpperBound(1)
            For k = my3DIntArray.GetLowerBound(2) _
            To my3DIntArray.GetUpperBound(2)
               my3DIntArray.SetValue(i * 100 + j * 10 + k, i, j, k)
            Next k
         Next j
      Next i

      ' Displays the bounds and values of the multidimensional Array.
      outputBlock.Text &= "Multidimensional Array:" & vbCrLf
      outputBlock.Text &= "Rank" + ControlChars.Tab + "Lower" _
         + ControlChars.Tab + "Upper" & vbCrLf
      For i = 0 To my3DIntArray.Rank - 1
         outputBlock.Text &= String.Format("{0}" + ControlChars.Tab + "{1}" _
            + ControlChars.Tab + "{2}", i, my3DIntArray.GetLowerBound(i), _
            my3DIntArray.GetUpperBound(i)) & vbCrLf
      Next i
      outputBlock.Text &= "Values:" & vbCrLf
      PrintValues(outputBlock, my3DIntArray)
   End Sub


   Public Shared Sub PrintValues(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal myArr As Array)
      Dim myEnumerator As System.Collections.IEnumerator = _
         myArr.GetEnumerator()
      Dim i As Integer = 0
      Dim cols As Integer = myArr.GetLength(myArr.Rank - 1)
      While myEnumerator.MoveNext()
         If i < cols Then
            i += 1
         Else
            outputBlock.Text &= vbCrLf
            i = 1
         End If
         outputBlock.Text &= String.Format(ControlChars.Tab + "{0}", myEnumerator.Current)
      End While
      outputBlock.Text &= vbCrLf
   End Sub
End Class

' 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


Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Show:
© 2014 Microsoft