What is the difference between Array.GetLength() and Array.Length?

Viewed 78348

How do you use the Array.GetLength function in C#?

What is the difference between the Length property and the GetLength function?

5 Answers

GetLength takes an integer that specifies the dimension of the array that you're querying and returns its length. Length property returns the total number of items in an array:

int[,,] a = new int[10,11,12];
Console.WriteLine(a.Length);           // 1320
Console.WriteLine(a.GetLength(0));     // 10
Console.WriteLine(a.GetLength(1));     // 11
Console.WriteLine(a.GetLength(2));     // 12

For 1-dimensional arrays Length and GetLength(0) are exactly the same.

For arrays of higher rank Length is the product of all GetLength(0..Rank-1) values, in other words it is always the total number of fields.

The .Length property returns the number of elements in an array, whether it be one dimensional or multidimensional. That is a 2x6 array will have length of 12.

The .GetLength(0) method returns number of elements in the row direction in a multidimensional array. For a 2x6 array that is 2.

The .GetLength(1) method returns number of elements in the column direction in a multidimensional array. For a 2x6 array that is 6.

These do not return an actual element value, as stated by the chosen answer above.

GetLength returns the length of a specified dimension of a mulit-dimensional array.

Length returns the sum of the total number of elements in all the dimensions.

  • For a single-dimensional array, Length == GetLength(0)
  • For a two-dimensional array, Length == GetLength(0) * GetLength(1)

etc.

Related