Array.GetUpperBound Method
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Gets the upper bound of the specified dimension in the Array.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- dimension
- Type: System.Int32
A zero-based dimension of the Array whose upper bound needs to be determined.
| Exception | Condition |
|---|---|
| IndexOutOfRangeException | dimension is less than zero. -or- dimension is equal to or greater than Rank. |
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 */
Show: