Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

Array.GetLength(Int32) Method

Definition

Namespace:
System
Assemblies:
mscorlib.dll, System.Runtime.dll
Assemblies:
netstandard.dll, System.Runtime.dll
Assembly:
System.Runtime.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll
Source:
Array.cs
Source:
Array.cs
Source:
Array.CoreCLR.cs
Source:
Array.CoreCLR.cs
Source:
Array.CoreCLR.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

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

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 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.

Applies to

See also


Feedback

Was this page helpful?