Compartilhar via


Como inicializar uma variável de matriz no Visual Basic

Inicialize uma variável de matriz incluindo um literal de matriz em uma cláusula de New e especificando os valores iniciais da matriz. É possível especificar o tipo ou permitir que ele seja inferido dos valores no literal de matriz. Para obter mais informações sobre como o tipo é inferido, consulte “Preencher uma matriz com valores iniciais” em Matrizes no Visual Basic.

Para inicializar uma variável de matriz usando um literal de matriz

  • Na cláusula New ou quando você atribui o valor de matriz, forneça os valores do elemento entre chaves ({}). O exemplo a seguir mostra várias maneiras de declarar, criar e inicializar uma variável para conter uma matriz com elementos do tipo Char.

    ' 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}
    

    Após a execução de cada instrução, a matriz criada tem um comprimento 3, com elementos no índice 0 até índice 2 que contém os valores iniciais. Se você fornecer tanto o limite superior quanto os valores, deverá incluir um valor para cada elemento do índice 0 até o limite superior.

    Observe que você não precisa especificar o limite superior do índice se fornecer valores de elemento em uma matriz literal. Se nenhum limite superior é especificado, o tamanho da matriz é 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 ({}) entre chaves. Verifique se os literais de matriz aninhados são todos inferidos como matrizes do mesmo tipo e comprimento. O exemplo de código 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}}}
    
  • É possível especificar explicitamente os limites da matriz, ou deixá-los de fora e solicitar que o compilador infira os limites da matriz com base nos valores no literal de matriz. Se você fornecer tanto os limites superiores como os valores, você deve incluir um valor para cada elemento do índice 0 até o limite superior de cada dimensão. O exemplo a seguir mostra várias maneiras de declarar, criar e inicializar uma variável para conter uma matriz bidimensional com 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 da matriz contém o valor 10.

  • O exemplo a seguir efetua iterações por meio de uma matriz multidimensional. Em um aplicativo do console do Windows escrito em Visual Basic, cole o código no método Sub Main(). 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 denteada usando literais de matriz

  • Valores de objeto aninhado entre chaves ({}). Embora você também possa aninhar literais de matriz que especificam matrizes de comprimentos diferentes, no caso de uma matriz denteada, verifique se os literais de matriz aninhados são colocados entre parênteses (()). Os parênteses impõe a avaliação dos literais de matriz aninhadas e as matrizes resultantes são usadas como os valores iniciais da matriz denteada. O exemplo de código mostra dois exemplos de inicialização de matriz denteada.

    ' 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 efetua iterações por meio de uma matriz denteada. Em um aplicativo do console do Windows escrito em Visual Basic, cole o código no método Sub Main(). 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
    

Consulte também

Tarefas

Solucionando problemas de matrizes (Visual Basic)

Outros recursos

Matrizes no Visual Basic