Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Réalloue l'espace de stockage d'une variable tableau.
Syntaxe
ReDim [ Preserve ] name(boundlist) [ , name(boundlist) [, ... ] ]
Éléments
| Terme | Définition |
|---|---|
Preserve |
Optionnel. Modificateur utilisé pour conserver les données du tableau existant quand vous modifiez la taille de la dernière dimension uniquement. |
name |
Obligatoire. Nom de la variable de tableau. Consultez Declared Element Names. |
boundlist |
Obligatoire. Liste des limites de chaque dimension du tableau redéfini. |
Notes
Vous pouvez utiliser l'instruction ReDim pour modifier la taille d'une ou plusieurs dimensions d'un tableau qui a déjà été déclaré. Si vous possédez un grand tableau et que vous n'avez plus besoin de certains de ses éléments, ReDim peut libérer de la mémoire en réduisant la taille du tableau. En revanche, si votre tableau a besoin d'éléments supplémentaires, ReDim peut les ajouter.
L'instruction ReDim est destinée uniquement aux tableaux. Il n'est pas valide sur les scalaires (variables contenant une seule valeur), les collections ou les structures. Notez que si vous déclarez une variable de type Array, l'instruction ReDim ne dispose pas d'informations de type suffisantes pour créer le tableau.
Vous pouvez utiliser ReDim uniquement au niveau de la procédure. Par conséquent, le contexte de déclaration pour la variable doit être une procédure ; il ne peut pas être un fichier source, un espace de noms, une interface, une classe, une structure, un module ou un bloc. Pour plus d’informations, consultez Contextes de déclaration et niveaux d’accès par défaut.
Règles
Variables multiples. Vous pouvez redimensionner plusieurs variables de tableau dans la même instruction de déclaration et spécifier les parties
nameetboundlistpour chaque variable. Les variables multiples sont séparées par des virgules.Limites d'index de tableau. Chaque entrée dans
boundlistpeut spécifier les limites inférieures et supérieures de cette dimension. La limite inférieure est toujours 0 (zéro). La limite supérieure est la valeur d'index la plus élevée possible pour cette dimension, pas la longueur de la dimension (qui est la limite supérieure plus un). L'index pour chaque dimension varie de 0 à sa valeur liée supérieure.Le nombre de dimensions dans
boundlistdoit correspondre au nombre de dimensions (rang) d'origine du tableau.Types de données. L'instruction
ReDimne peut pas modifier le type de données d'une variable tableau ou de ses éléments.Initialisation. L'instruction
ReDimne peut pas fournir de nouvelles valeurs d'initialisation pour les éléments du tableau.Rang. L'instruction
ReDimne peut pas modifier le rang (nombre de dimensions) du tableau.Redimensionnement avec Preserve. Si vous utilisez
Preserve, vous pouvez uniquement redimensionner la dernière dimension du tableau. Pour chaque autre dimension, vous devez spécifier la limite du tableau existant.Par exemple, si votre tableau ne comporte qu'une seule dimension, vous pouvez la redimensionner tout en conservant le contenu du tableau, car vous modifiez la dernière et seule dimension. Toutefois, si votre tableau comporte deux dimensions ou plus, vous pouvez modifier la taille de la dernière dimension seulement si vous utilisez
Preserve.Propriétés. Vous pouvez utiliser
ReDimsur une propriété contenant un tableau de valeurs.
Comportement
Remplacement du tableau.
ReDimlibère le tableau existant et crée un tableau avec le même rang. Le nouveau tableau remplace le tableau libéré dans la variable tableau.Initialisation sans Preserve. Si vous ne spécifiez pas
Preserve,ReDiminitialise les éléments du nouveau tableau à l'aide de la valeur par défaut de leur type de données.Initialisation avec Preserve. Si vous spécifiez
Preserve, Visual Basic copie les éléments du tableau existant dans le nouveau tableau.
Exemple
L'exemple suivant augmente la taille de la dernière dimension d'un tableau dynamique sans perte de données existantes dans le tableau, puis réduit la taille avec une perte de données partielle. Enfin, il réduit la taille à sa valeur d'origine et réinitialise tous les éléments du tableau.
Class SampleCollection
' Define a local collection to store strings.
Private items As New List(Of String)
' Define a parameterized property (indexer) for the collection.
Default Public Property Item(ByVal index As Integer) As String
Get
' Return the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
Return items(index)
Else
Return Nothing
End If
End Get
Set(ByVal value As String)
' Set the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
items(index) = value
ElseIf index = items.Count Then
' Allow adding new items at the end.
items.Add(value)
End If
End Set
End Property
' Add a Count property for convenience.
Public ReadOnly Property Count As Integer
Get
Return items.Count
End Get
End Property
' Add method to add items.
Public Sub Add(ByVal item As String)
items.Add(item)
End Sub
End Class
L'instruction Dim crée un tableau à trois dimensions. Étant donné que chaque dimension est déclarée avec une limite de 10, l'index de tableau pour chaque dimension peut aller de 0 à 10. Dans la discussion suivante, les trois dimensions sont appelées « couche », « ligne » et « colonne ».
La première instruction ReDim crée un tableau qui remplace le tableau existant dans la variable intArray.
ReDim copie tous les éléments du tableau existant dans le nouveau tableau. Elle ajoute également 10 colonnes supplémentaires à la fin de chaque ligne dans chaque couche et initialise les éléments de ces nouvelles colonnes à 0 (la valeur par défaut d'Integer, qui est le type d'élément du tableau).
La deuxième instruction ReDim crée un autre tableau et copie tous les éléments adaptés. Toutefois, les cinq colonnes sont perdus à la fin de chaque ligne dans chaque couche. Cela n'est pas un problème si vous avez fini d'utiliser ces colonnes. La réduction de la taille d'un grand tableau peut libérer de la mémoire dont vous n'avez plus besoin.
La troisième instruction ReDim crée un autre tableau et supprime cinq autres colonnes de la fin de chaque ligne dans chaque couche. Cette fois-ci, elle ne copie pas les éléments existants. Cette instruction rétablit la taille d'origine du tableau. Étant donné que l'instruction n'inclut pas le modificateur Preserve, elle définit tous les éléments de tableau à leurs valeurs par défaut d'origine.
Pour plus d'exemples, consultez Tableaux.