.NET Framework Class Library
Array.GetLength Method
Gets a 32-bit integer that represents the number of elements in the specified dimension of the Array.
Assembly: mscorlib (in mscorlib.dll)
Syntax
Visual Basic
Public Function GetLength ( _ dimension As Integer _ ) As Integer
C#
public int GetLength( int dimension )
Visual C++
public: int GetLength( int dimension )
F#
member GetLength : dimension:int -> int
Parameters
- dimension
- Type: System.Int32
A zero-based dimension of the Array whose length needs to be determined.
Return Value
Type: System.Int32A 32-bit integer that represents the number of elements in the specified dimension.
Exceptions
| Exception | Condition |
|---|---|
| IndexOutOfRangeException |
dimension is less than zero. -or- dimension is equal to or greater than Rank. |
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.
Examples
The following example shows how to use GetLength to display the dimensions of two arrays with different ranks.
Visual Basic
Imports System 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
C#
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 */
Visual C++
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 */
Version Information
.NET Framework
Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Supported in: 4, 3.5 SP1Portable Class Library
Supported in: Portable Class LibraryPlatforms
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
See Also