Compartilhar via


Como inicializar uma variável de matriz no Visual Basic

Usando um literal de matriz, você pode preencher uma matriz com valores iniciais quando você o cria.Você pode incluir o literal de matriz como parte da cláusula de New e para especificar o tipo ou para permitir que é 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 em Visual Basic.

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

  • Ou na cláusula de New , ou quando você atribui o valor de matriz, forneça os valores dos elemento dentro de chaves ({}).O exemplo a seguir mostra várias maneiras de criar, declarar 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}
    

    Depois que executa cada instrução, a matriz é criada que tem um tamanho de 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 você valores de elemento fonte em um literal de matriz.Se nenhum limite superior é especificado, o tamanho da matriz é inferido com base no número de valores no literal de matriz.

Para inicializar uma variável array multidimensional usando literais de matriz

  • Aninhar valores dentro de chaves (){}dentro de chaves.Certifique-se de que todos os literais de matriz aninhados infiram 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 deixe-os para fora e mande-o o compilador inferir 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 criar, declarar 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 executa cada instrução, a matriz criada seis contém 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 efetua iterações através uma matriz multidimensional.Em Visual Basic Console Application, cole o código no método de Sub Main() .Comentários do último 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 do objeto da aninhada dentro de chaves ({}).Embora você também pode aninhar literais de matriz que especificam matrizes de comprimentos diferentes, no caso de uma matriz denteada, certifique-se de que os literais de matriz aninhados é colocado entre parênteses()().Os parênteses forçam a avaliação de literais de matriz aninhados, e matrizes resultantes são usadas como valores iniciais da matriz denteada.O exemplo de código a seguir 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 efetua iterações através uma matriz denteada.Cole o código no método de Sub Main()em Visual Basic Console Application.Comentários no código indicam o que a saída deve ser.

    ' 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 em Visual Basic