Un tableau d’objets en VB.Net est une structure de données qui permet de stocker plusieurs instances d’une classe ou d’un type personnalisé. Il est utile pour gérer des ensembles d’objets similaires dans un seul conteneur.
Pour déclarer un tableau d’objets, vous spécifiez le type de l’objet, suivi des dimensions du tableau.
Exemple :
Dim personnes() As Personne
Avant de créer un tableau d’objets, définissez une classe qui décrit les objets à stocker.
Exemple :
Public Class Personne
Public Property Nom As String
Public Property Age As Integer
End Class
Vous devez initialiser le tableau avec une taille fixe et créer des instances pour chaque élément.
Exemple :
Dim personnes(2) As Personne ' Crée un tableau pour 3 objets Personne
personnes(0) = New Personne With {.Nom = "Jean", .Age = 30}
personnes(1) = New Personne With {.Nom = "Marie", .Age = 25}
personnes(2) = New Personne With {.Nom = "Paul", .Age = 40}
Les objets sont accessibles via leur index, comme pour un tableau classique.
Exemple :
Console.WriteLine("Nom : " & personnes(0).Nom) ' Affiche "Jean"
Console.WriteLine("Âge : " & personnes(1).Age) ' Affiche 25
For
:For i As Integer = 0 To personnes.Length - 1
Console.WriteLine($"Nom : {personnes(i).Nom}, Âge : {personnes(i).Age}")
Next
For Each
:For Each personne As Personne In personnes
Console.WriteLine($"Nom : {personne.Nom}, Âge : {personne.Age}")
Next
Vous pouvez redimensionner un tableau d’objets avec ReDim
. Utilisez Preserve
pour conserver les données existantes.
Exemple :
ReDim Preserve personnes(3) ' Agrandir le tableau à 4 éléments
personnes(3) = New Personne With {.Nom = "Claire", .Age = 35}
Pour trier un tableau d’objets, utilisez Array.Sort
avec une fonction de comparaison.
Exemple :
Array.Sort(personnes, Function(p1, p2) p1.Age.CompareTo(p2.Age))
For Each personne As Personne In personnes
Console.WriteLine($"{personne.Nom}, Âge : {personne.Age}")
Next
Pour filtrer les objets selon une condition, utilisez LINQ.
Exemple :
Dim adultes = From p In personnes Where p.Age >= 30 Select p
For Each personne As Personne In adultes
Console.WriteLine($"{personne.Nom}, Âge : {personne.Age}")
Next
Voici un programme complet qui montre comment créer, manipuler et afficher un tableau d’objets :
Public Class Personne
Public Property Nom As String
Public Property Age As Integer
End Class
Module Module1
Sub Main()
' Déclarer et initialiser le tableau
Dim personnes(2) As Personne
personnes(0) = New Personne With {.Nom = "Jean", .Age = 30}
personnes(1) = New Personne With {.Nom = "Marie", .Age = 25}
personnes(2) = New Personne With {.Nom = "Paul", .Age = 40}
' Afficher toutes les personnes
Console.WriteLine("Liste des personnes :")
For Each personne As Personne In personnes
Console.WriteLine($"Nom : {personne.Nom}, Âge : {personne.Age}")
Next
' Ajouter une nouvelle personne
ReDim Preserve personnes(3)
personnes(3) = New Personne With {.Nom = "Claire", .Age = 35}
' Trier par âge
Array.Sort(personnes, Function(p1, p2) p1.Age.CompareTo(p2.Age))
' Afficher après tri
Console.WriteLine("Liste triée par âge :")
For Each personne As Personne In personnes
Console.WriteLine($"Nom : {personne.Nom}, Âge : {personne.Age}")
Next
' Filtrer les personnes de plus de 30 ans
Dim adultes = From p In personnes Where p.Age > 30 Select p
Console.WriteLine("Personnes de plus de 30 ans :")
For Each personne As Personne In adultes
Console.WriteLine($"{personne.Nom}, Âge : {personne.Age}")
Next
End Sub
End Module
Array.Sort
, ReDim
, et LINQ.List(Of T)
, qui permettent une croissance dynamique plus facile.En VB.Net, un tableau dynamique est un tableau dont la taille peut être modifiée au moment de l’exécution. Contrairement aux tableaux fixes, leur taille n’est pas définie une fois pour toutes. Pour travailler avec des tableaux dynamiques, vous pouvez utiliser les mots-clés ReDim
et ReDim Preserve
.
Un tableau dynamique est initialement déclaré sans spécifier sa taille.
Exemple :
Dim tableau() As Integer
Ici, tableau
est un tableau dynamique qui n’a pas encore de taille définie.
ReDim
ReDim
permet de redimensionner un tableau en définissant une nouvelle taille. Cela efface tous les éléments existants du tableau.
Exemple :
Dim tableau() As Integer
ReDim tableau(4) ' Définit la taille du tableau à 5 éléments (index 0 à 4)
tableau(0) = 10
tableau(1) = 20
ReDim Preserve
ReDim Preserve
permet de redimensionner un tableau tout en conservant les données existantes.
Exemple :
Dim tableau() As Integer
ReDim tableau(2) ' Tableau de 3 éléments
tableau(0) = 10
tableau(1) = 20
tableau(2) = 30
ReDim Preserve tableau(4) ' Agrandir le tableau à 5 éléments
tableau(3) = 40
tableau(4) = 50
Pour ajouter des éléments dans un tableau dynamique, utilisez ReDim Preserve
pour agrandir la taille du tableau.
Exemple :
Dim tableau() As Integer
ReDim tableau(0) ' Initialisation du tableau avec 1 élément
tableau(0) = 10
' Ajouter un nouvel élément
ReDim Preserve tableau(1)
tableau(1) = 20
' Ajouter un autre élément
ReDim Preserve tableau(2)
tableau(2) = 30
Les tableaux dynamiques peuvent être parcourus comme les tableaux fixes.
For
:For i As Integer = 0 To tableau.Length - 1
Console.WriteLine(tableau(i))
Next
For Each
:For Each valeur As Integer In tableau
Console.WriteLine(valeur)
Next
Les tableaux dynamiques en VB.Net ne permettent pas directement de supprimer un élément (comme dans une liste). Cependant, vous pouvez créer un nouveau tableau sans l’élément à supprimer.
Exemple : Suppression d’un élément :
Dim tableau() As Integer = {10, 20, 30, 40}
Dim indexToRemove As Integer = 2 ' Supprimer l'élément à l'index 2
Dim nouveauTableau(tableau.Length - 2) As Integer
Dim j As Integer = 0
For i As Integer = 0 To tableau.Length - 1
If i <> indexToRemove Then
nouveauTableau(j) = tableau(i)
j += 1
End If
Next
tableau = nouveauTableau ' Remplacer l'ancien tableau
Voici un programme complet qui illustre l’ajout, l’affichage, et la suppression de noms dans un tableau dynamique.
Module Module1
Sub Main()
Dim noms() As String = {}
While True
Dim choix As String = InputBox("1. Ajouter un nom" & vbCrLf &
"2. Afficher les noms" & vbCrLf &
"3. Supprimer un nom" & vbCrLf &
"4. Quitter")
Select Case choix
Case "1"
' Ajouter un nom
Dim nom As String = InputBox("Entrez un nom :")
ReDim Preserve noms(noms.Length)
noms(noms.Length - 1) = nom
Case "2"
' Afficher les noms
Dim affichage As String = String.Join(vbCrLf, noms)
MsgBox("Liste des noms :" & vbCrLf & affichage)
Case "3"
' Supprimer un nom
Dim nomToRemove As String = InputBox("Entrez le nom à supprimer :")
Dim indexToRemove As Integer = Array.IndexOf(noms, nomToRemove)
If indexToRemove >= 0 Then
Dim nouveauTableau(noms.Length - 2) As String
Dim j As Integer = 0
For i As Integer = 0 To noms.Length - 1
If i <> indexToRemove Then
nouveauTableau(j) = noms(i)
j += 1
End If
Next
noms = nouveauTableau
MsgBox("Nom supprimé.")
Else
MsgBox("Nom introuvable.")
End If
Case "4"
' Quitter
Exit While
Case Else
MsgBox("Choix invalide.")
End Select
End While
End Sub
End Module
List(Of T)
.Les tableaux dynamiques sont puissants, mais si vous devez fréquemment ajouter ou supprimer des éléments, utilisez une liste.
Exemple avec List(Of T)
:
Dim noms As New List(Of String)
noms.Add("Jean")
noms.Add("Marie")
noms.Remove("Jean") ' Supprime "Jean"
For Each nom As String In noms
Console.WriteLine(nom)
Next
ReDim
pour redimensionner un tableau et ReDim Preserve
pour agrandir un tableau tout en conservant son contenu.List(Of T)
comme alternative plus pratique et efficace.Télécharger un canevas Word Présentation d’Entreprise ⬇︎ 1. Définition : Qu’est-ce qu’une Présentation d’Entreprise ?…
Le dossier professionnel est un document essentiel pour structurer et valoriser un parcours professionnel. Il…
Une présentation de dossier est un document structuré qui permet d’exposer de manière claire et…
Maîtriser la Syntaxe en Français La syntaxe est l'un des piliers fondamentaux de la langue…
Dans le marché compétitif d'aujourd'hui, une proposition de valeur pertinente est primordiale pour distinguer une…
Lors de l’élaboration ou de la révision d’un texte législatif, réglementaire ou statutaire, les propositions…
This website uses cookies.