Array.GetUpperBound Method
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Gets the upper bound of the specified dimension in the Array.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<SecuritySafeCriticalAttribute> _
Public Function GetUpperBound ( _
dimension As Integer _
) As Integer
[SecuritySafeCriticalAttribute]
public int GetUpperBound(
int dimension
)
Parameters
- dimension
Type: System.Int32
A zero-based dimension of the Array whose upper bound needs to be determined.
Return Value
Type: System.Int32
The upper bound of the specified dimension in the Array.
Exceptions
Exception | Condition |
---|---|
IndexOutOfRangeException | dimension is less than zero. -or- dimension is equal to or greater than Rank. |
Remarks
GetUpperBound(0) returns the upper bound for the indexes of the first dimension of the Array, and GetUpperBound(Rank - 1) returns the upper bound of the last dimension of the Array.
This method is an O(1) operation.
Examples
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
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
*/
Version Information
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
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.