System Namespace Array Class
Returns the lower bound of the specified dimension in the Array.
[ VB ]
<Serializable>
Public Function GetLowerBound ( _
ByVal dimension As Integer _
) As Integer
[ C# ]
[Serializable]
public int GetLowerBound (
int dimension
);
[ C++ ]
[Serializable]
public: int GetLowerBound (
int dimension
);
[JScript ]
public Serializable
function GetLowerBound (
dimension : int
) : int;
- dimension
- A zero-based dimension of the Array whose lower bound needs to be determined.
The lower bound of the specified dimension in the Array.
An example of GetLowerBound is GetLowerBound ( 0 )
, which 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.
The following code example uses GetLowerBound and GetUpperBound to initialize two arrays, one-dimensional and multidimensional.
[ VB ]
Imports System
Imports Microsoft.VisualBasic
Public Class SamplesArray
Public Shared Sub Main ( )
' 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.
Response.WriteLine ( "One-dimensional Array:" )
Response.WriteLine ( "Rank" + ControlChars.Tab + "Lower" _
+ ControlChars.Tab + "Upper" )
Response.WriteLine ( "{0}" + ControlChars.Tab + "{1}" _
+ ControlChars.Tab + "{2}", 0, my1DIntArray.GetLowerBound ( 0 ) , _
my1DIntArray.GetUpperBound ( 0 ) )
Response.WriteLine ( "Values:" )
PrintValues ( my1DIntArray )
Response.WriteLine ( )
' 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.
Response.WriteLine ( "Multidimensional Array:" )
Response.WriteLine ( "Rank" + ControlChars.Tab + "Lower" _
+ ControlChars.Tab + "Upper" )
For i = 0 To my3DIntArray.Rank - 1
Response.WriteLine ( "{0}" + ControlChars.Tab + "{1}" _
+ ControlChars.Tab + "{2}", i, my3DIntArray.GetLowerBound ( i ) , _
my3DIntArray.GetUpperBound ( i ) )
Next i
Response.WriteLine ( "Values:" )
PrintValues ( my3DIntArray )
End Sub
Public Shared Sub PrintValues ( 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
Response.WriteLine ( )
i = 1
End If
Response.Write ( ControlChars.Tab + "{0}", myEnumerator.Current )
End While
Response.WriteLine ( )
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
[ C# ]
using System;
public class SamplesArray {
public static void Main ( ) {
// 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.
Response.WriteLine ( "One-dimensional Array:" );
Response.WriteLine ( "Rank\tLower\tUpper" );
Response.WriteLine ( "{0}\t{1}\t{2}", 0, my1DIntArray.GetLowerBound ( 0 ) , my1DIntArray.GetUpperBound ( 0 ) );
Response.WriteLine ( "Values:" );
PrintValues ( my1DIntArray );
Response.WriteLine ( );
// 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.
Response.WriteLine ( "Multidimensional Array:" );
Response.WriteLine ( "Rank\tLower\tUpper" );
for ( int i = 0; i < my3DIntArray.Rank; i++ )
Response.WriteLine ( "{0}\t{1}\t{2}", i, my3DIntArray.GetLowerBound ( i ) , my3DIntArray.GetUpperBound ( i ) );
Response.WriteLine ( "Values:" );
PrintValues ( my3DIntArray );
}
public static void PrintValues ( 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 {
Response.WriteLine ( );
i = 1;
}
Response.Write ( "\t{0}", myEnumerator.Current );
}
Response.WriteLine ( );
}
}
/*
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
*/
[JScript ]
import System;
// Creates a new one-dimensional Array of type Int32.
var my1DIntArray : System.Array = System.Array.CreateInstance ( Int32, 5 );
// Uses GetLowerBound and GetUpperBound in the for loop.
for ( var m : int = my1DIntArray.GetLowerBound ( 0 ); m <= my1DIntArray.GetUpperBound ( 0 ); m++ )
my1DIntArray.SetValue ( Int32 ( m+1 ) , m );
// Displays the bounds and values of the one-dimensional Array.
Response.WriteLine ( "One-dimensional Array:" );
Response.WriteLine ( "Rank\tLower\tUpper" );
Response.WriteLine ( "{0}\t{1}\t{2}", 0, my1DIntArray.GetLowerBound ( 0 ) , my1DIntArray.GetUpperBound ( 0 ) );
Response.WriteLine ( "Values:" );
PrintValues ( my1DIntArray );
Response.WriteLine ( );
// Creates a new three-dimensional Array of type Int32.
var my3DIntArray : System.Array = System.Array.CreateInstance ( Int32, 2, 3, 4 );
// Uses GetLowerBound and GetUpperBound in the for loop.
for ( var i : int = my3DIntArray.GetLowerBound ( 0 ); i <= my3DIntArray.GetUpperBound ( 0 ); i++ )
for ( var j : int = my3DIntArray.GetLowerBound ( 1 ); j <= my3DIntArray.GetUpperBound ( 1 ); j++ )
for ( var k : int = my3DIntArray.GetLowerBound ( 2 ); k <= my3DIntArray.GetUpperBound ( 2 ); k++ ) {
my3DIntArray.SetValue ( Int32 ( ( i*100 ) + ( j*10 ) +k ) , i, j, k );
}
// Displays the bounds and values of the multidimensional Array.
Response.WriteLine ( "Multidimensional Array:" );
Response.WriteLine ( "Rank\tLower\tUpper" );
for ( var l : int = 0; l < my3DIntArray.Rank; l++ )
Response.WriteLine ( "{0}\t{1}\t{2}", l, my3DIntArray.GetLowerBound ( l ) , my3DIntArray.GetUpperBound ( l ) );
Response.WriteLine ( "Values:" );
PrintValues ( my3DIntArray );
function PrintValues ( myArr : System.Array ) {
var myEnumerator : System.Collections.IEnumerator = myArr.GetEnumerator ( );
var i : int = 0;
var cols : int = myArr.GetLength ( myArr.Rank - 1 );
while ( myEnumerator.MoveNext ( ) ) {
if ( i < cols ) {
i++;
} else {
Response.WriteLine ( );
i = 1;
}
Response.Write ( "\t{0}", myEnumerator.Current );
}
Response.WriteLine ( );
}
/*
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
*/
Array Members GetUpperBound Rank