Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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.