Eu quero descobrir o número de elementos na dimensão fornecida usando C #:
int [][] arr = new int [3][];
int elements_dim0 = arr.GetLength(0); // Returns 3, which is the size of dimension. I want it to return the actual count of elements in provided dimension.
Respostas:
2 para resposta № 1int [][]
não é uma matriz multidimensional - sua matriz irregular (ou seja, é "matriz de matrizes"). Se você deseja obter o comprimento da matriz em algum índice, você deve usar
arr[0].Length
Mas certifique-se de que você tenha inicializado o elemento da matriz antes de obtê-lo (caso contrário, você obterá NullReferenceException).
arr[0] = new int[] { 1, 2, 3 };
arr[1] = new int[] { 4, 5 };
Você também pode inicializar o array irregular com a sintaxe do inicializador de array:
int[][] arr = { new[] { 1, 2, 3 }, new[] { 4, 5 }, new[] { 6 } };
Note que as matrizes multidimensionais são definidas como int [,]
. E você pode usar GetLowerBound(int dimension)
(geralmente é zero) e GetUpperBound(int dimension)
para obter limites de cada dimensão de matriz. Por exemplo. criando uma matriz multidimensional de tamanho 2 x 4:
int[,] grid = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } };
grid.GetUpperBound(0); // 1
grid.GetUpperBound(1); // 3
Leituras adicionais: Matrizes irregulares e Matrizes Multidimensionais