Como: Inicializar uma variável de matriz no Visual Basic
Você inicializa uma variável de matriz incluindo um literal de matriz em uma New
cláusula e especificando os valores iniciais da matriz. Você pode especificar o tipo ou permitir que ele seja inferido a partir dos valores no literal da matriz. Para obter mais informações sobre como o tipo é inferido, consulte "Preenchendo uma matriz com valores iniciais" em Matrizes.
Para inicializar uma variável de matriz usando um literal de matriz
Na
New
cláusula, ou quando você atribui o valor da matriz, forneça os valores do elemento dentro de chaves ({}
). O exemplo a seguir mostra várias maneiras de declarar, criar e inicializar uma variável para conter uma matriz que tenha elementos do tipoChar
.' The following five lines of code create the same array. ' Preferred syntaxes are on the lines with chars1 and chars2. Dim chars1 = {"%"c, "&"c, "@"c} Dim chars2 As Char() = {"%"c, "&"c, "@"c} Dim chars3() As Char = {"%"c, "&"c, "@"c} Dim chars4 As Char() = New Char(2) {"%"c, "&"c, "@"c} Dim chars5() As Char = New Char(2) {"%"c, "&"c, "@"c}
Depois que cada instrução é executada, a matriz criada tem um comprimento de 3, com elementos no índice 0 até o índice 2 contendo os valores iniciais. Se você fornecer o limite superior e os valores, deverá incluir um valor para cada elemento do índice 0 até o limite superior.
Observe que não é necessário especificar o limite superior do índice se você fornecer valores de elemento em um literal de matriz. Se nenhum limite superior for especificado, o tamanho da matriz será inferido com base no número de valores no literal da matriz.
Para inicializar uma variável de matriz multidimensional usando literais de matriz
Aninhar valores dentro de chaves (
{}
) dentro de chaves. Certifique-se de que os literais de matriz aninhada inferem como matrizes do mesmo tipo e comprimento. O exemplo de código a seguir mostra vários exemplos de inicialização de matriz multidimensional.Dim numbers = {{1, 2}, {3, 4}, {5, 6}} Dim customerData = {{"City Power & Light", "http://www.cpandl.com/"}, {"Wide World Importers", "http://wideworldimporters.com"}, {"Lucerne Publishing", "http://www.lucernepublishing.com"}} ' You can nest array literals to create arrays that have more than two ' dimensions. Dim twoSidedCube = {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}}
Você pode especificar explicitamente os limites da matriz ou deixá-los de fora e fazer com que o compilador infera os limites da matriz com base nos valores no literal da matriz. Se você fornecer os limites superiores e os valores, deverá incluir um valor para cada elemento do índice 0 até o limite superior em cada dimensão. O exemplo a seguir mostra várias maneiras de declarar, criar e inicializar uma variável para conter uma matriz bidimensional que tenha elementos do tipo
Short
' The following five lines of code create the same array. ' Preferred syntaxes are on the lines with scores1 and scores2. Dim scores1 = {{10S, 10S, 10S}, {10S, 10S, 10S}} Dim scores2 As Short(,) = {{10, 10, 10}, {10, 10, 10}} Dim scores3(,) As Short = {{10, 10, 10}, {10, 10, 10}} Dim scores4 As Short(,) = New Short(1, 2) {{10, 10, 10}, {10, 10, 10}} Dim scores5(,) As Short = New Short(1, 2) {{10, 10, 10}, {10, 10, 10}}
Depois que cada instrução é executada, a matriz criada contém seis elementos inicializados que têm índices
(0,0)
,(0,1)
, ,(0,2)
(1,0)
,(1,1)
e(1,2)
. Cada local de matriz contém o valor10
.O exemplo a seguir itera através de uma matriz multidimensional. Em um aplicativo de console do Windows que é escrito em Visual Basic, cole o código dentro do
Sub Main()
método. Os últimos comentários mostram a saída.Dim numbers = {{1, 2}, {3, 4}, {5, 6}} ' Iterate through the array. For index0 = 0 To numbers.GetUpperBound(0) For index1 = 0 To numbers.GetUpperBound(1) Debug.Write(numbers(index0, index1).ToString & " ") Next Debug.WriteLine("") Next ' Output ' 1 2 ' 3 4 ' 5 6
Para inicializar uma variável de matriz irregular usando literais de matriz
Aninhar valores de objeto dentro de chaves (
{}
). Embora você também possa aninhar literais de matriz que especificam matrizes de comprimentos diferentes, no caso de uma matriz irregular, certifique-se de que os literais de matriz aninhada estejam entre parênteses (()
). Os parênteses forçam a avaliação dos literais de matriz aninhada, e as matrizes resultantes são usadas como os valores iniciais da matriz irregular. O exemplo de código a seguir mostra dois exemplos de inicialização de matriz irregular.' Create a jagged array of arrays that have different lengths. Dim jaggedNumbers = {({1, 2, 3}), ({4, 5}), ({6}), ({7})} ' Create a jagged array of Byte arrays. Dim images = {New Byte() {}, New Byte() {}, New Byte() {}}
O exemplo a seguir itera por meio de uma matriz irregular. Em um aplicativo de console do Windows que é escrito em Visual Basic, cole o código dentro do
Sub Main()
método. Os últimos comentários no código mostram a saída.' Create a jagged array of arrays that have different lengths. Dim jaggedNumbers = {({1, 2, 3}), ({4, 5}), ({6}), ({7})} For indexA = 0 To jaggedNumbers.Length - 1 For indexB = 0 To jaggedNumbers(indexA).Length - 1 Debug.Write(jaggedNumbers(indexA)(indexB) & " ") Next Debug.WriteLine("") Next ' Output: ' 1 2 3 ' 4 5 ' 6 ' 7