Partilhar via


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 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 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 valor 10.

  • 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
    

Consulte também