Compartir a través de


Cómo: Cambiar el tamaño de una matriz

Actualización: noviembre 2007

Cambia el tamaño de una variable de matriz asignándole un nuevo objeto de matriz. Puede utilizar una instrucción de asignación estándar o Instrucción ReDim (Visual Basic). En cualquier caso, la matriz original se reemplaza por una completamente nueva y la variable de matriz señala a la nueva matriz.

Cambiar el tamaño de una matriz le ayuda a administrar la memoria de forma eficaz. Por ejemplo, puede empezar con una matriz pequeña y aumentar su tamaño si necesita más elementos. Asimismo, puede empezar con una matriz grande y reducir su tamaño cuando ya no la necesita entera. Esta técnica sólo ocupa la memoria adicional cuando se necesita.

Para cambiar el tamaño de una variable de matriz mediante una instrucción de asignación estándar

  1. Cree el nuevo objeto de matriz especificando las nuevas longitudes de la dimensión.

  2. Asigne el nuevo objeto de matriz a la variable de matriz.

    Dim thisArrayVariable() As Integer = New Integer(99) {}
    thisArrayVariable = New Integer(49) {}
    

Para cambiar el tamaño de una variable de matriz mediante la instrucción ReDim

  • Especifique las nuevas longitudes de dimensión para la variable de matriz en la instrucción ReDim.

    Dim thisArrayVariable() As Integer = New Integer(99) {}
    ReDim thisArrayVariable(9)
    

Cuando se redimensiona una matriz mediante ReDim, normalmente se pierden los valores existentes de sus elementos. No obstante, se pueden conservar si se incluye la palabra clave Preserve en la instrucción ReDim.

Para cambiar el tamaño de una variable de matriz conservando los valores de elementos existentes

  1. Especifique las nuevas longitudes de dimensión para la variable de matriz en la instrucción ReDim.

  2. Agregue la palabra clave Preserve en la instrucción ReDim. El ejemplo siguiente crea una nueva matriz, inicializa sus elementos desde los elementos correspondientes de la matriz existente en arrayToIncreasey asigna la nueva matriz a la variable de matriz arrayToIncrease.

    Dim arrayToIncrease(9, 49)
    ReDim Preserve arrayToIncrease(9, 199)
    

Si utiliza Preserve en una matriz multidimensional, puede cambiar sólo la última longitud de dimensión. Si intenta cambiar cualquiera de las demás dimensiones, aparece una excepción ArrayTypeMismatchException.

Si cambia el tamaño de una matriz grande mediante la palabra clave Preserve, tenga presente que Visual Basic debe copiar todos los elementos existentes en la nueva matriz. Esto puede ralentizar el rendimiento.

Vea también

Tareas

Cómo: Declarar una variable de matriz

Cómo: Crear una matriz

Cómo: Inicializar una variable de matriz

Cómo: Determinar el tamaño de una matriz

Cómo: Determinar la longitud de una dimensión de una matriz

Cómo: Asignar una matriz a otra

Cómo: Cambiar una matriz por otra distinta

Solucionar problemas de matrices

Conceptos

Tamaño de matriz en Visual Basic

Otros recursos

Matrices en Visual Basic