Array.GetLowerBound 方法
获取 Array 中指定维度的下限。
**命名空间:**System
**程序集:**mscorlib(在 mscorlib.dll 中)
语法
声明
Public Function GetLowerBound ( _
dimension As Integer _
) As Integer
用法
Dim instance As Array
Dim dimension As Integer
Dim returnValue As Integer
returnValue = instance.GetLowerBound(dimension)
public int GetLowerBound (
int dimension
)
public:
int GetLowerBound (
int dimension
)
public int GetLowerBound (
int dimension
)
public function GetLowerBound (
dimension : int
) : int
参数
- dimension
Array 的从零开始的维度,其下限需要确定。
返回值
Array 中指定维度的下限。
异常
异常类型 | 条件 |
---|---|
dimension 小于零。 - 或 - dimension 等于或大于 Rank。 |
备注
GetLowerBound(0)
返回 Array 的第一维的索引下限,GetLowerBound(Rank - 1)
返回 Array 的最后一维的下限。
此方法是 O(1) 操作。
示例
下面的代码示例使用 GetLowerBound 和 GetUpperBound 初始化一维数组和多维数组。
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
*/
平台
Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
.NET Compact Framework
受以下版本支持:2.0、1.0