Array 内の指定した次元の下限を取得します。
Public Function GetLowerBound( _
ByVal dimension As Integer _) As Integer
[C#]
public int GetLowerBound(intdimension);
[C++]
public: int GetLowerBound(intdimension);
[JScript]
public function GetLowerBound(
dimension : int) : int;
パラメータ
- dimension
下限を指定する Array の 0 から始まる次元。
戻り値
Array 内の指定した次元の下限。
例外
例外の種類 | 条件 |
---|---|
IndexOutOfRangeException | dimension が 0 未満です。
または dimension が Rank 以上です。 |
解説
GetLowerBound の例としては GetLowerBound(0)
があり、これは Array の最初の次元のインデックスの下限を返します。 GetLowerBound(Rank - 1)
は Array の最後の次元の下限を返します。
使用例
GetLowerBound と GetUpperBound を使用して 1 次元配列と多次元配列の 2 つの配列を初期化する方法を次のコード例に示します。
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
[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.
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
*/
[C++]
#using <mscorlib.dll>
using namespace System;
void PrintValues( Array* myArr );
void main() {
// Creates a new one-dimensional Array instance 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( __box(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}", __box(0), __box(my1DIntArray->GetLowerBound(0)), __box(my1DIntArray->GetUpperBound(0)) );
Console::WriteLine( "Values:" );
PrintValues( my1DIntArray );
Console::WriteLine();
// Creates a new three-dimensional Array instance 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( __box((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}", __box(i), __box(my3DIntArray->GetLowerBound(i)), __box(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
*/
[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.
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
*/
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard
参照
Array クラス | Array メンバ | System 名前空間 | GetUpperBound | Rank