VB.NET

Guide : Tableaux d’Objets en VB.Net

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.


1. Déclaration d’un Tableau d’Objets

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

2. Définir une Classe

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

3. Initialisation d’un Tableau d’Objets

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}

4. Accéder aux Objets dans le Tableau

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

5. Parcourir un Tableau d’Objets

Avec une boucle For :

For i As Integer = 0 To personnes.Length - 1
    Console.WriteLine($"Nom : {personnes(i).Nom}, Âge : {personnes(i).Age}")
Next

Avec une boucle For Each :

For Each personne As Personne In personnes
    Console.WriteLine($"Nom : {personne.Nom}, Âge : {personne.Age}")
Next

6. Tableaux Dynamiques avec ReDim

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}

7. Tri d’un Tableau d’Objets

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

8. Filtrage d’un Tableau d’Objets

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

9. Exemple Complet : Gestion d’un Tableau d’Objets

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

10. Avantages et Limites

Avantages :

  1. Permet de regrouper des objets similaires pour un accès organisé.
  2. Compatible avec les fonctionnalités VB.Net comme Array.Sort, ReDim, et LINQ.
  3. Efficace pour de petites collections d’objets.

Limites :

  1. Taille fixe (sauf redimensionnement manuel).
  2. Moins flexible que des collections comme List(Of T), qui permettent une croissance dynamique plus facile.

Guide : Utilisation des Tableaux Dynamiques en VB.Net

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.


1. Déclarer un Tableau Dynamique

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.


2. Initialiser ou Redimensionner un Tableau Dynamique

Utiliser 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

Utiliser 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

3. Ajouter des Éléments à un Tableau Dynamique

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

4. Parcourir un Tableau Dynamique

Les tableaux dynamiques peuvent être parcourus comme les tableaux fixes.

Avec une boucle For :

For i As Integer = 0 To tableau.Length - 1
    Console.WriteLine(tableau(i))
Next

Avec une boucle For Each :

For Each valeur As Integer In tableau
    Console.WriteLine(valeur)
Next

5. Supprimer un Élement d’un Tableau Dynamique

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

6. Exemple Pratique : Gestion Dynamique d’une Liste de Noms

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

7. Avantages et Limites des Tableaux Dynamiques

Avantages :

  1. Flexible : Les tableaux peuvent être redimensionnés à tout moment.
  2. Efficace : Performances similaires aux tableaux fixes pour l’accès et la modification.

Limites :

  1. Manipulation complexe : Ajouter ou supprimer des éléments demande du code supplémentaire.
  2. Alternatives dynamiques : Pour des scénarios complexes, il est souvent préférable d’utiliser des collections comme List(Of T).

8. Alternatives : Listes Dynamiques

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

  • Les tableaux dynamiques sont utiles lorsque la taille des données peut varier au moment de l’exécution.
  • Utilisez ReDim pour redimensionner un tableau et ReDim Preserve pour agrandir un tableau tout en conservant son contenu.
  • Si vous avez besoin d’ajouter et de supprimer des éléments fréquemment, envisagez d’utiliser List(Of T) comme alternative plus pratique et efficace.

Autres articles

Guide : Trier un Tableau en VB.Net
Trier un tableau en VB.Net consiste à organiser ses éléments...
Read more
Guide : Désérialiser un Tableau JSON avec...
Newtonsoft.Json (ou Json.NET) est une bibliothèque populaire pour la manipulation...
Read more
Guide : Créer et Manipuler une Liste...
En VB.Net, une liste est une collection dynamique qui permet...
Read more
Guide : Manipulation des Tableaux de Chaînes...
Un tableau de chaînes en VB.Net est une collection ordonnée...
Read more
Série d'Exercices Corrigés sur VB.Net
Voici une série d'exercices corrigés sur VB.Net. Ils couvrent différents...
Read more
Guide pratique : Déclaration d’un objet en...
La déclaration d’un objet en VB.NET est une tâche fondamentale...
Read more

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *