Array.GetLength(Int32) Method

Definition

Gets a 32-bit integer that represents the number of elements in the specified dimension of the Array.

``````public:
int GetLength(int dimension);``````
``public int GetLength (int dimension);``
``member this.GetLength : int -> int``
``Public Function GetLength (dimension As Integer) As Integer``

Parameters

dimension
Int32

A zero-based dimension of the Array whose length needs to be determined.

Returns

Int32

A 32-bit integer that represents the number of elements in the specified dimension.

Exceptions

`dimension` is less than zero.

-or-

`dimension` is equal to or greater than Rank.

Examples

The following example shows how to use GetLength to display the dimensions of two arrays with different ranks.

``````using namespace System;

public ref class SamplesArray
{
public:
static void Main()
{
// make a single dimension array
Array^ MyArray1 = Array::CreateInstance(int::typeid, 5);

// make a 3 dimensional array
Array^ MyArray2 = Array::CreateInstance(int::typeid, 5, 3, 2);

// make an array container
Array^ BossArray = Array::CreateInstance(Array::typeid, 2);
BossArray->SetValue(MyArray1, 0);
BossArray->SetValue(MyArray2, 1);

int i = 0, j, rank;
for each (Array^ anArray in BossArray)
{
rank = anArray->Rank;
if (rank > 1)
{
Console::WriteLine("Lengths of {0:d} dimension array[{1:d}]", rank, i);
// show the lengths of each dimension
for (j = 0; j < rank; j++)
{
Console::WriteLine("    Length of dimension({0:d}) = {1:d}", j, anArray->GetLength(j));
}
}
else
{
Console::WriteLine("Lengths of single dimension array[{0:d}]", i);
}
// show the total length of the entire array or all dimensions
Console::WriteLine("    Total length of the array = {0:d}", anArray->Length);
Console::WriteLine();
i++;
}
}
};

int main()
{
SamplesArray::Main();
}

/*
This code produces the following output:

Lengths of single dimension array[0]
Total length of the array = 5

Lengths of 3 dimension array[1]
Length of dimension(0) = 5
Length of dimension(1) = 3
Length of dimension(2) = 2
Total length of the array = 30
*/
``````
``````using System;

public class SamplesArray
{
public static void Main()
{
// make a single dimension array
Array MyArray1 = Array.CreateInstance(typeof(int), 5);

// make a 3 dimensional array
Array MyArray2 = Array.CreateInstance(typeof(int), 5, 3, 2);

// make an array container
Array BossArray = Array.CreateInstance(typeof(Array), 2);
BossArray.SetValue(MyArray1, 0);
BossArray.SetValue(MyArray2, 1);

int i = 0, j, rank;
foreach (Array anArray in BossArray)
{
rank = anArray.Rank;
if (rank > 1)
{
Console.WriteLine("Lengths of {0:d} dimension array[{1:d}]", rank, i);
// show the lengths of each dimension
for (j = 0; j < rank; j++)
{
Console.WriteLine("    Length of dimension({0:d}) = {1:d}", j, anArray.GetLength(j));
}
}
else
{
Console.WriteLine("Lengths of single dimension array[{0:d}]", i);
}
// show the total length of the entire array or all dimensions
Console.WriteLine("    Total length of the array = {0:d}", anArray.Length);
Console.WriteLine();
i++;
}
}
}

/*
This code produces the following output:

Lengths of single dimension array[0]
Total length of the array = 5

Lengths of 3 dimension array[1]
Length of dimension(0) = 5
Length of dimension(1) = 3
Length of dimension(2) = 2
Total length of the array = 30
*/
``````
``````open System

// make a single dimension array
let myArray1 = Array.zeroCreate<int> 5

// make a 3 dimensional array
let myArray2 = Array3D.zeroCreate<int> 5 3 2

// make an array container
let bossArray: Array [] =
[|  myArray1
myArray2 |]

let mutable i = 0
for anArray in bossArray do
let rank = anArray.Rank;
if rank > 1 then
printfn \$"Lengths of {rank:d} dimension array[{i:d}]"
// show the lengths of each dimension
for j = 0 to rank - 1 do
printfn \$"    Length of dimension({j:d}) = {anArray.GetLength(j):d}"
else
printfn \$"Lengths of single dimension array[{i:d}]"

// show the total length of the entire array or all dimensions
printfn \$"    Total length of the array = {anArray.Length:d}\n"
i <- i + 1

// This code produces the following output:
//     Lengths of single dimension array[0]
//         Total length of the array = 5
//
//     Lengths of 3 dimension array[1]
//         Length of dimension(0) = 5
//         Length of dimension(1) = 3
//         Length of dimension(2) = 2
//     Total length of the array = 30
``````
``````Public Class SamplesArray
Public Shared Sub Main()
' make a single dimension array
Dim MyArray1 As Array = Array.CreateInstance(GetType(Integer), 5)

' make a 3 dimensional array
Dim MyArray2 As Array = Array.CreateInstance(GetType(Integer), 5, 3, 2)

' make an array container
Dim BossArray As Array = Array.CreateInstance(GetType(Array), 2)
BossArray.SetValue(MyArray1, 0)
BossArray.SetValue(MyArray2, 1)

Dim i As Integer = 0
Dim j As Integer
Dim rank As Integer
For Each anArray As Array In BossArray
rank = anArray.Rank
If rank > 1
Console.WriteLine("Lengths of {0:d} dimension array[{1:d}]", rank, i)
' show the lengths of each dimension
For j = 0 To rank - 1
Console.WriteLine("    Length of dimension({0:d}) = {1:d}", j, anArray.GetLength(j))
Next j
Else
Console.WriteLine("Lengths of single dimension array[{0:d}]", i)
End If
' show the total length of the entire array or all dimensions
Console.WriteLine("    Total length of the array = {0:d}", anArray.Length)
Console.WriteLine()
i = i + 1
Next anArray
End Sub
End Class

'This code produces the following output:
'
'Lengths of single dimension array[0]
'    Total length of the array = 5
'
'Lengths of 3 dimension array[1]
'    Length of dimension(0) = 5
'    Length of dimension(1) = 3
'    Length of dimension(2) = 2
'    Total length of the array = 30
``````

Remarks

An example of GetLength is `GetLength(0)`, which returns the number of elements in the first dimension of the Array.

This method is an O(1) operation.