/ / C # elementos em dimensão - c #, .net, matrizes, matriz multidimensional

Elementos C # em Dimensão - c #, .net, matrizes, matriz multidimensional

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 № 1

int [][] 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