Array.GetLowerBound(Int32) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得陣列中指定之維度的第一個項目的索引。
public:
int GetLowerBound(int dimension);
public int GetLowerBound (int dimension);
member this.GetLowerBound : int -> int
Public Function GetLowerBound (dimension As Integer) As Integer
參數
- dimension
- Int32
需要決定開始索引之陣列的以零為起始的維度。
傳回
陣列中指定之維度的第一個項目的索引。
例外狀況
範例
下列範例會使用 GetLowerBound 和 GetUpperBound 方法來顯示一維和二維陣列的界限,以及顯示其陣列元素的值。
using namespace System;
void main()
{
// Create a one-dimensional integer array.
array<int>^ integers = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 };
// Get the upper and lower bound of the array.
int upper = integers->GetUpperBound(0);
int lower = integers->GetLowerBound(0);
Console::WriteLine("Elements from index {0} to {1}:", lower, upper);
// Iterate the array.
for (int ctr = lower; ctr <= upper; ctr++)
Console::Write("{0}{1}{2}", ctr == lower ? " " : "",
integers[ctr],
ctr < upper ? ", " : Environment::NewLine);
Console::WriteLine();
// Create a two-dimensional integer array.
array<int, 2>^ integers2d = { {2, 4}, {3, 9}, {4, 16}, {5, 25},
{6, 36}, {7, 49}, {8, 64}, {9, 81} };
// Get the number of dimensions.
int rank = integers2d->Rank;
Console::WriteLine("Number of dimensions: {0}", rank);
for (int ctr = 0; ctr < rank; ctr++)
Console::WriteLine(" Dimension {0}: from {1} to {2}",
ctr, integers2d->GetLowerBound(ctr),
integers2d->GetUpperBound(ctr));
// Iterate the 2-dimensional array and display its values.
Console::WriteLine(" Values of array elements:");
for (int outer = integers2d->GetLowerBound(0); outer <= integers2d->GetUpperBound(0);
outer++)
for (int inner = integers2d->GetLowerBound(1); inner <= integers2d->GetUpperBound(1);
inner++)
Console::WriteLine(" {3}{0}, {1}{4} = {2}", outer, inner,
integers2d->GetValue(outer, inner), "{", "}");
}
// The example displays the following output:
// Elements from index 0 to 9:
// 2, 4, 6, 8, 10, 12, 14, 16, 18, 20
//
// Number of dimensions: 2
// Dimension 0: from 0 to 7
// Dimension 1: from 0 to 1
// Values of array elements:
// {0, 0} = 2
// {0, 1} = 4
// {1, 0} = 3
// {1, 1} = 9
// {2, 0} = 4
// {2, 1} = 16
// {3, 0} = 5
// {3, 1} = 25
// {4, 0} = 6
// {4, 1} = 36
// {5, 0} = 7
// {5, 1} = 49
// {6, 0} = 8
// {6, 1} = 64
// {7, 0} = 9
// {7, 1} = 81
using System;
public class Example
{
public static void Main()
{
// Create a one-dimensional integer array.
int[] integers = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 };
// Get the upper and lower bound of the array.
int upper = integers.GetUpperBound(0);
int lower = integers.GetLowerBound(0);
Console.WriteLine($"Elements from index {lower} to {upper}:");
// Iterate the array.
for (int ctr = lower; ctr <= upper; ctr++)
Console.Write($"{(ctr == lower ?" " : "")}{integers[ctr]}" +
$"{(ctr < upper ? ", " : Environment.NewLine)}");
Console.WriteLine();
// Create a two-dimensional integer array.
int[,] integers2d= { {2, 4}, {3, 9}, {4, 16}, {5, 25},
{6, 36}, {7, 49}, {8, 64}, {9, 81} };
// Get the number of dimensions.
int rank = integers2d.Rank;
Console.WriteLine($"Number of dimensions: {rank}");
for (int ctr = 0; ctr < rank; ctr++)
Console.WriteLine($" Dimension {ctr}: " +
$"from {integers2d.GetLowerBound(ctr)} to {integers2d.GetUpperBound(ctr)}");
// Iterate the 2-dimensional array and display its values.
Console.WriteLine(" Values of array elements:");
for (int outer = integers2d.GetLowerBound(0); outer <= integers2d.GetUpperBound(0);
outer++)
for (int inner = integers2d.GetLowerBound(1); inner <= integers2d.GetUpperBound(1);
inner++)
Console.WriteLine($" {'\u007b'}{outer}, {inner}{'\u007d'} = " +
$"{integers2d.GetValue(outer, inner)}");
}
}
// The example displays the following output:
// Elements from index 0 to 9:
// 2, 4, 6, 8, 10, 12, 14, 16, 18, 20
//
// Number of dimensions: 2
// Dimension 0: from 0 to 7
// Dimension 1: from 0 to 1
// Values of array elements:
// {0, 0} = 2
// {0, 1} = 4
// {1, 0} = 3
// {1, 1} = 9
// {2, 0} = 4
// {2, 1} = 16
// {3, 0} = 5
// {3, 1} = 25
// {4, 0} = 6
// {4, 1} = 36
// {5, 0} = 7
// {5, 1} = 49
// {6, 0} = 8
// {6, 1} = 64
// {7, 0} = 9
// {7, 1} = 81
open System
// Create a one-dimensional integer array.
let integers = [| 2..2..20 |]
// Get the upper and lower bound of the array.
let upper = integers.GetUpperBound 0
let lower = integers.GetLowerBound 0
printfn $"Elements from index {lower} to {upper}:"
// Iterate the array.
for i = lower to upper do
if i = lower then printf " "
printf $"{integers[i]}"
if i < upper then ", " else Environment.NewLine
|> printf "%s"
printfn ""
// Create a two-dimensional integer array.
let integers2d =
array2D [ [ 2; 4 ]; [ 3; 9 ]; [ 4; 16 ]; [ 5; 25 ]
[ 6; 36 ]; [ 7; 49 ]; [ 8; 64 ]; [ 9; 81 ] ]
// Get the number of dimensions.
let rank = integers2d.Rank
printfn $"Number of dimensions: {rank}"
for i = 0 to rank - 1 do
printfn $" Dimension {i}: from {integers2d.GetLowerBound i} to {integers2d.GetUpperBound i}"
// Iterate the 2-dimensional array and display its values.
printfn " Values of array elements:"
for outer = integers2d.GetLowerBound 0 to integers2d.GetUpperBound 0 do
for inner = integers2d.GetLowerBound 1 to integers2d.GetUpperBound 1 do
printfn $" {'\u007b'}{outer}, {inner}{'\u007d'} = {integers2d.GetValue(outer, inner)}"
// The example displays the following output:
// Elements from index 0 to 9:
// 2, 4, 6, 8, 10, 12, 14, 16, 18, 20
//
// Number of dimensions: 2
// Dimension 0: from 0 to 7
// Dimension 1: from 0 to 1
// Values of array elements:
// {0, 0} = 2
// {0, 1} = 4
// {1, 0} = 3
// {1, 1} = 9
// {2, 0} = 4
// {2, 1} = 16
// {3, 0} = 5
// {3, 1} = 25
// {4, 0} = 6
// {4, 1} = 36
// {5, 0} = 7
// {5, 1} = 49
// {6, 0} = 8
// {6, 1} = 64
// {7, 0} = 9
// {7, 1} = 81
Public Module Example
Public Sub Main()
' Create a one-dimensional integer array.
Dim integers() As Integer = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 }
' Get the upper and lower bound of the array.
Dim upper As Integer = integers.GetUpperBound(0)
Dim lower As Integer = integers.GetLowerBound(0)
Console.WriteLine($"Elements from index {lower} to {upper}:")
' Iterate the array.
For ctr As Integer = lower To upper
Console.Write("{0}{1}{2}", If(ctr = lower, " ", ""),
integers(ctr),
If(ctr < upper, ", ", vbCrLf))
Next
Console.WriteLine()
' Create a two-dimensional integer array.
Dim integers2d(,) As Integer = {{2, 4}, {3, 9}, {4, 16}, {5, 25},
{6, 36}, {7, 49}, {8, 64}, {9, 81} }
' Get the number of dimensions.
Dim rank As Integer = integers2d.Rank
Console.WriteLine($"Number of dimensions: {rank}")
For ctr As Integer = 0 To rank - 1
Console.WriteLine($" Dimension {ctr}: " +
$"from {integers2d.GetLowerBound(ctr)} to {integers2d.GetUpperBound(ctr)}")
Next
' Iterate the 2-dimensional array and display its values.
Console.WriteLine(" Values of array elements:")
For outer = integers2d.GetLowerBound(0) To integers2d.GetUpperBound(0)
For inner = integers2d.GetLowerBound(1) To integers2d.GetUpperBound(1)
Console.WriteLine($" {ChrW(&h07b)}{outer}, {inner}{ChrW(&h007d)} = " +
$"{integers2d.GetValue(outer, inner)}")
Next
Next
End Sub
End Module
' The example displays the following output.
' Elements from index 0 to 9:
' 2, 4, 6, 8, 10, 12, 14, 16, 18, 20
'
' Number of dimensions: 2
' Dimension 0: from 0 to 7
' Dimension 1: from 0 to 1
' Values of array elements:
' {0, 0} = 2
' {0, 1} = 4
' {1, 0} = 3
' {1, 1} = 9
' {2, 0} = 4
' {2, 1} = 16
' {3, 0} = 5
' {3, 1} = 25
' {4, 0} = 6
' {4, 1} = 36
' {5, 0} = 7
' {5, 1} = 49
' {6, 0} = 8
' {6, 1} = 64
' {7, 0} = 9
' {7, 1} = 81
備註
GetLowerBound(0)
會傳回陣列第一個維度的起始索引,並 GetLowerBound(Rank - 1)
傳回陣列最後一個維度的起始索引。
方法 GetLowerBound 一律會傳回值,指出陣列下限的索引,即使陣列是空的。
請注意,雖然 .NET 中的大部分陣列都是以零為起始的 (, GetLowerBound 但是此方法會針對陣列的每個維度傳回零) ,.NET 確實支援不是以零起始的陣列。 這類陣列可以使用 方法建立 CreateInstance(Type, Int32[], Int32[]) ,也可以從 Unmanaged 程式碼傳回。
這個方法是 O (1) 作業。