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
Cree el nuevo objeto de matriz especificando las nuevas longitudes de la dimensión.
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
Especifique las nuevas longitudes de dimensión para la variable de matriz en la instrucción ReDim.
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: 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