Compartilhar via


Matrizes Denteadas no Visual Basic

Uma matriz na qual cada elemento é também uma matriz é chamada de uma matriz de matrizes, ou uma matriz denteada.Observe que ter matrizes como elementos não é a mesma coisa que uma matriz multidimensional, que tem mais de um índice em uma matriz única.

O significado de Denteado

Às vezes, a estrutura de dados no seu aplicativo é bidimensional, mas não retangular.Por exemplo, você pode ter uma matriz de meses, em que cada elemento é uma matriz de dias.Como diferentes meses têm diferentes números de dias, os elementos não formam uma matriz bidimensional retangular.Em tais casos, você pode usar uma matriz denteada em vez de um matriz multidimensional.

Exemplo

O exemplo a seguir declara uma matriz variável para conter uma matriz de matrizes com elementos de Tipo de dados duplo (Visual Basic).Cada elemento da matriz sales é também uma matriz que representa um mês.Cada matriz de mês contém valores para cada dia naquele mês.

Dim sales()() As Double = New Double(11)() {}
Dim month As Integer
Dim days As Integer
For month = 0 To 11 
    days = DateTime.DaysInMonth(Year(Now), month + 1)
    sales(month) = New Double(days - 1) {}
Next month

A cláusula New na declaração de sales define a matriz variável como uma matriz de 12 elementos, sendo cada elemento do tipo Double(), uma matriz de elementos Double.O loop For, em seguida, determina quantos dias há em cada mês desse ano (Year(Now)) e define o elemento correspondente de sales em uma matriz Double de tamanho apropriado.

No exemplo anterior, a matriz denteada salva sete elementos (seis em um ano bissexto) como comparação para uma matriz bidimensional.Em casos mais extremos a economia de memória pode ser significativa.

Consulte também

Tarefas

Como: Declare uma variável de matriz

Como: Criar uma matriz de matrizes

Como: Inicializar uma matriz irregular

Solucionando problemas de arrays

Conceitos

Visão geral dos arrays in Visual Basic

Dimensões de matriz em Visual Basic

Matrizes multidimensionais no Visual Basic

Tipos de dados Array no Visual Basic

Escrevendo código compatível com CLS

Outros recursos

Matrizes no Visual Basic