Array.GetUpperBound-Methode
Ruft die obere Grenze der angegebenen Dimension im Array ab.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Function GetUpperBound ( _
dimension As Integer _
) As Integer
'Usage
Dim instance As Array
Dim dimension As Integer
Dim returnValue As Integer
returnValue = instance.GetUpperBound(dimension)
public int GetUpperBound (
int dimension
)
public:
int GetUpperBound (
int dimension
)
public int GetUpperBound (
int dimension
)
public function GetUpperBound (
dimension : int
) : int
Parameter
- dimension
Eine nullbasierte Dimension des Array, deren obere Grenze bestimmt werden soll.
Rückgabewert
Die obere Grenze der angegebenen Dimension im Array.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
dimension ist kleiner als 0. - oder - dimension ist größer oder gleich Rank. |
Hinweise
GetUpperBound(0)
gibt die obere Grenze für die Indizes der ersten Dimension des Array zurück, und GetUpperBound(Rank - 1)
gibt die obere Grenze der letzten Dimension des Array zurück.
Diese Methode ist eine O(1)-Operation.
Beispiel
Im folgenden Codebeispiel werden GetLowerBound und GetUpperBound verwendet, um ein eindimensionales Array und ein mehrdimensionales Array zu initialisieren.
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.
Console.WriteLine("One-dimensional Array:")
Console.WriteLine("Rank" + ControlChars.Tab + "Lower" _
+ ControlChars.Tab + "Upper")
Console.WriteLine("{0}" + ControlChars.Tab + "{1}" _
+ ControlChars.Tab + "{2}", 0, my1DIntArray.GetLowerBound(0), _
my1DIntArray.GetUpperBound(0))
Console.WriteLine("Values:")
PrintValues(my1DIntArray)
Console.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.
Console.WriteLine("Multidimensional Array:")
Console.WriteLine("Rank" + ControlChars.Tab + "Lower" _
+ ControlChars.Tab + "Upper")
For i = 0 To my3DIntArray.Rank - 1
Console.WriteLine("{0}" + ControlChars.Tab + "{1}" _
+ ControlChars.Tab + "{2}", i, my3DIntArray.GetLowerBound(i), _
my3DIntArray.GetUpperBound(i))
Next i
Console.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
Console.WriteLine()
i = 1
End If
Console.Write(ControlChars.Tab + "{0}", myEnumerator.Current)
End While
Console.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
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.
Console.WriteLine( "One-dimensional Array:" );
Console.WriteLine( "Rank\tLower\tUpper" );
Console.WriteLine( "{0}\t{1}\t{2}", 0, my1DIntArray.GetLowerBound(0), my1DIntArray.GetUpperBound(0) );
Console.WriteLine( "Values:" );
PrintValues( my1DIntArray );
Console.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.
Console.WriteLine( "Multidimensional Array:" );
Console.WriteLine( "Rank\tLower\tUpper" );
for ( int i = 0; i < my3DIntArray.Rank; i++ )
Console.WriteLine( "{0}\t{1}\t{2}", i, my3DIntArray.GetLowerBound(i), my3DIntArray.GetUpperBound(i) );
Console.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 {
Console.WriteLine();
i = 1;
}
Console.Write( "\t{0}", myEnumerator.Current );
}
Console.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
*/
using namespace System;
void PrintValues( Array^ myArr );
void main()
{
// Creates a new one-dimensional Array instance of type Int32.
Array^ my1DIntArray = Array::CreateInstance( Int32::typeid, 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.
Console::WriteLine( "One-dimensional Array:" );
Console::WriteLine( "Rank\tLower\tUpper" );
Console::WriteLine( "{0}\t{1}\t{2}", nullptr, my1DIntArray->GetLowerBound( 0 ), my1DIntArray->GetUpperBound( 0 ) );
Console::WriteLine( "Values:" );
PrintValues( my1DIntArray );
Console::WriteLine();
// Creates a new three-dimensional Array instance of type Int32.
Array^ my3DIntArray = Array::CreateInstance( Int32::typeid, 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.
Console::WriteLine( "Multidimensional Array:" );
Console::WriteLine( "Rank\tLower\tUpper" );
for ( int i = 0; i < my3DIntArray->Rank; i++ )
Console::WriteLine( "{0}\t{1}\t{2}", i, my3DIntArray->GetLowerBound( i ), my3DIntArray->GetUpperBound( i ) );
Console::WriteLine( "Values:" );
PrintValues( my3DIntArray );
}
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
{
Console::WriteLine();
i = 1;
}
Console::Write( "\t{0}", myEnumerator->Current );
}
Console::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
*/
import System.*;
public class SamplesArray
{
public static void main(String[] args)
{
// Creates a new one-dimensional Array of type Int32.
Array my1DIntArray = Array.CreateInstance(Int32.class.ToType(), 5);
// Uses GetLowerBound and GetUpperBound in the for loop.
for (int i = my1DIntArray.GetLowerBound(0); i <= my1DIntArray.
GetUpperBound(0); i++) {
my1DIntArray.SetValue((Int32)(i + 1), i);
}
// Displays the bounds and values of the one-dimensional Array.
Console.WriteLine("One-dimensional Array:");
Console.WriteLine("Rank\tLower\tUpper");
Console.WriteLine("{0}\t{1}\t{2}", (Int32)0, (Int32)my1DIntArray.
GetLowerBound(0), (Int32)my1DIntArray.GetUpperBound(0));
Console.WriteLine("Values:");
PrintValues(my1DIntArray);
Console.WriteLine();
// Creates a new three-dimensional Array of type Int32.
Array my3DIntArray = Array.CreateInstance(Int32.class.ToType(), 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((Int32)(i * 100 + j * 10 + k), i, j, k);
}
}
} // Displays the bounds and values of the multidimensional Array.
Console.WriteLine("Multidimensional Array:");
Console.WriteLine("Rank\tLower\tUpper");
for (int i = 0; i < my3DIntArray.get_Rank(); i++) {
Console.WriteLine("{0}\t{1}\t{2}", (Int32)i, (Int32)my3DIntArray.
GetLowerBound(i), (Int32)my3DIntArray.GetUpperBound(i));
}
Console.WriteLine("Values:");
PrintValues(my3DIntArray);
} //main
public static void PrintValues(Array myArr)
{
System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
int i = 0;
int cols = myArr.GetLength(myArr.get_Rank() - 1);
while (myEnumerator.MoveNext()) {
if (i < cols) {
i++;
}
else {
Console.WriteLine();
i = 1;
}
Console.Write("\t{0}", myEnumerator.get_Current());
}
Console.WriteLine();
} //PrintValues
} //SamplesArray
/*
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
*/
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.
Console.WriteLine( "One-dimensional Array:" );
Console.WriteLine( "Rank\tLower\tUpper" );
Console.WriteLine( "{0}\t{1}\t{2}", 0, my1DIntArray.GetLowerBound(0), my1DIntArray.GetUpperBound(0) );
Console.WriteLine( "Values:" );
PrintValues( my1DIntArray );
Console.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.
Console.WriteLine( "Multidimensional Array:" );
Console.WriteLine( "Rank\tLower\tUpper" );
for ( var l : int = 0; l < my3DIntArray.Rank; l++ )
Console.WriteLine( "{0}\t{1}\t{2}", l, my3DIntArray.GetLowerBound(l), my3DIntArray.GetUpperBound(l) );
Console.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 {
Console.WriteLine();
i = 1;
}
Console.Write( "\t{0}", myEnumerator.Current );
}
Console.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
*/
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
Array-Klasse
Array-Member
System-Namespace
GetLowerBound
Rank