Cómo: Inicializar variables de matriz en Visual Basic

Puede utilizar un literal de matriz para rellenar una matriz con valores iniciales al crearla. Puede incluir el literal de matriz como parte de la cláusula New y especificar explícitamente el tipo. Si no especifica un tipo de los elementos de matriz, el tipo se deduce de los valores del literal de la matriz. Para obtener información detallada 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 three lines of code create the same array.
    Dim chars1() As Char = New Char(2) {"%"c, "&"c, "@"c}
    Dim chars2 = {"%"c, "&"c, "@"c}
    Dim chars3() As Char = {"%"c, "&"c, "@"c}
    

    Tras la ejecución de estas instrucciones, la matriz creada tiene una longitud de 3, con elementos desde el índice 0 hasta el índice 2 que contienen 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 ticTacToe = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}}
    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 three lines of code create the same array.
    Dim startingScores1(,) As Short = New Short(1, 2) {{10, 10, 10}, {10, 10, 10}}
    Dim startingScores2 = {{10S, 10S, 10S}, {10S, 10S, 10S}}
    Dim startingScores3(,) As Short = {{10, 10, 10}, {10, 10, 10}}
    

    Tras la ejecución de esta instrucción, la matriz creada contiene seis elementos inicializados que tienen los índices (0,0), (0,1), (0,2), (1,0), (1,1) y (1,2). Cada ubicación de matriz contiene el valor 10.

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 diagonal = {({0, 0, 0}), ({0, 0}), ({0})}
    
    ' Create a jagged array of Byte arrays.
    Dim images = {New Byte() {}, New Byte() {}, New Byte() {}}
    

Vea también

Tareas

Solucionar problemas de matrices (Visual Basic)

Conceptos

Matrices en Visual Basic