1. Généralités
Un tableau est une structure regroupant plusieurs valeurs de même type, appelées composantes du tableau.
Chaque composante est désignée individuellement via son indice (index), qui correspond à sa position.
Les indices en VB.Net commencent toujours à zéro (0). Si un tableau a une longueur N, l'indice varie de 0 à N-1.
Les tableaux peuvent avoir une ou plusieurs dimensions (matrices).
2. Déclaration et création
Pour déclarer un tableau, on utilise les parenthèses (). Il faut ensuite allouer l'espace mémoire avec le mot-clé New.
Déclaration simple (Taille implicite)
' Déclaration
Dim monTableau() As Integer
' Définition de la taille plus tard
monTableau = New Integer(3) {} ' Un tableau de 4 éléments (0 à 3)
Dim monTableau() As Integer
' Définition de la taille plus tard
monTableau = New Integer(3) {} ' Un tableau de 4 éléments (0 à 3)
Déclaration et initialisation (Directe)
' VB.Net calcule automatiquement la taille
Dim tab1() As Integer = {13, -19, 24, 33}
Dim tabStr() As String = {"apc", "pedagogie", "cours"}
' Les deux en une ligne
Dim tab = New Integer(42) {}
Dim tab1() As Integer = {13, -19, 24, 33}
Dim tabStr() As String = {"apc", "pedagogie", "cours"}
' Les deux en une ligne
Dim tab = New Integer(42) {}
3. Tableaux à deux dimensions (Matrices)
Un tableau à 2 dimensions peut être considéré comme une table, avec des lignes et des colonnes.
La déclaration se fait en ajoutant une virgule dans les parenthèses :
( , )
' Déclaration d'une matrice 3 lignes, 2 colonnes
Dim matrice(,) As Integer = New Integer(2, 1) {
{1, 2},
{3, 4},
{5, 6}
}
Dim matrice(,) As Integer = New Integer(2, 1) {
{1, 2},
{3, 4},
{5, 6}
}
4. Tableaux de tableaux (En escalier)
Un tableau en escalier (Jagged Array) est un tableau dont les éléments sont eux-mêmes des tableaux.
Contrairement à une matrice parfaite, chaque ligne d'un tableau en escalier peut avoir une longueur différente.
La déclaration se fait avec plusieurs parenthèses :
( )( )
' Déclaration d'un tableau en escalier avec 3 rangées
Dim jagged()() As Integer = New Integer(2)() {}
' Chaque rangée est un tableau de taille différente !
jagged(0) = New Integer() {1, 2} ' 2 éléments
jagged(1) = New Integer() {0} ' 1 élément
jagged(2) = New Integer() {3, 4, 5} ' 3 éléments
Dim jagged()() As Integer = New Integer(2)() {}
' Chaque rangée est un tableau de taille différente !
jagged(0) = New Integer() {1, 2} ' 2 éléments
jagged(1) = New Integer() {0} ' 1 élément
jagged(2) = New Integer() {3, 4, 5} ' 3 éléments