Cómo: Inicializar una variable de matriz en Visual Basic

Utilizando un literal de matriz, puede rellenar una matriz con valores iniciales cuando lo crea.Puede incluir el literal de matriz como parte de la cláusula de New y especificar el tipo o para permitir que se deduzcan de los valores del literal de matriz.Para obtener más información sobre cómo se deduce el tipo, vea “rellenar una matriz con valores iniciales” en Matrices en Visual Basic.

Para inicializar una variable de matriz mediante un literal de matriz

  • En la cláusula New, o al asignar el valor de matriz, proporcione los valores de elementos entre llaves ({}).En el ejemplo siguiente se muestran varias maneras de declarar, crear e inicializar una variable para que contenga una matriz con elementos de 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}
    

    Después de cada instrucción se ejecuta, se crea que tiene una longitud de 3, con elementos en el índice 0 al índice 2 que contiene los valores iniciales.Si proporciona el límite superior y los valores, debe incluir un valor para cada elemento desde el índice 0 hasta el límite superior.

    Observe que no tiene que especificar el límite superior del índice si proporciona valores de elementos en un literal de matriz.Si no se especifica ningún límite superior, el tamaño de la matriz se deduce mediante el número de valores en el literal de matriz.

Para inicializar una variable de matriz multidimensional mediante literales de matriz

  • Anide los valores entre llaves ({}).Asegúrese de que todos los literales de matriz anidados se deduzcan como matrices del mismo tipo y longitud.En el ejemplo de código siguiente se muestran varios ejemplos de inicialización de una 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}}}
    
  • Puede especificar explícitamente los límites de la matriz, u omitirlos y dejar que el compilador los deduzca tomando como base los valores en el literal de matriz.Si proporciona los límites superiores y los valores, debe incluir un valor para cada elemento desde el índice 0 hasta el límite superior en cada dimensión.En el ejemplo siguiente se muestran varias maneras de declarar, crear e inicializar una variable para que contenga una matriz bidimensional con elementos de 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}}
    

    Después de cada instrucción se ejecute, la matriz creada contiene seis elementos inicializados que tienen índices (0,0), (0,1), (0,2), (1,0), (1,1), y (1,2).Cada ubicación de matriz contiene el valor 10.

  • El ejemplo siguiente se recorre en iteración una matriz multidimensional.En Visual Basic Console Application, pegue el código del método de Sub Main().Los comentarios pasados muestran el resultado.

    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 una variable de matriz escalonada mediante literales de matriz

  • Anide los valores de objetos entre llaves ({}).Aunque también puede anidar los literales de matriz que especifican matrices de longitudes diferentes, en el caso de una matriz escalonada asegúrese de que los literales de matriz anidados se incluyan entre paréntesis (()).Los paréntesis fuerzan la evaluación de los literales de matriz anidados y las matrices resultantes se utilizan como valores iniciales de la matriz escalonada.En el ejemplo de código siguiente se muestran dos ejemplos de inicialización de una matriz escalonada.

    ' 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() {}}
    
  • El ejemplo siguiente se recorre en iteración una matriz escalonada.Pegue el código del método de Sub Main() en Visual Basic Console Application.Los comentarios del código indican cuál debería ser la salida.

    ' 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
    

Vea también

Tareas

Solucionar problemas de matrices (Visual Basic)

Otros recursos

Matrices en Visual Basic