VB.NET

Guide : Créer et Manipuler une Liste en VB.Net

En VB.Net, une liste est une collection dynamique qui permet de stocker des objets, de les manipuler facilement, et d’ajouter ou supprimer des éléments sans avoir besoin de redimensionner la structure. Les listes sont définies dans l’espace de noms System.Collections.Generic avec la classe List(Of T).


1. Déclaration d’une Liste

La classe List(Of T) nécessite un type générique (T) qui définit le type des éléments dans la liste.

Exemple de déclaration :

Dim maListe As New List(Of String)

Ici, maListe est une liste de chaînes (String).


2. Ajout d’Éléments à une Liste

Utilisez la méthode Add pour insérer un élément dans la liste.

Exemple :

Dim fruits As New List(Of String)
fruits.Add("Pomme")
fruits.Add("Banane")
fruits.Add("Orange")

Pour ajouter plusieurs éléments :

fruits.AddRange(New String() {"Cerise", "Fraise"})

3. Accéder aux Éléments d’une Liste

Les éléments d’une liste sont accessibles via leur index (commençant à 0).

Exemple :

Dim fruits As New List(Of String) From {"Pomme", "Banane", "Orange"}
Console.WriteLine(fruits(0)) ' Affiche : Pomme
Console.WriteLine(fruits(2)) ' Affiche : Orange

4. Parcourir une Liste

Avec une boucle For :

Dim fruits As New List(Of String) From {"Pomme", "Banane", "Orange"}
For i As Integer = 0 To fruits.Count - 1
    Console.WriteLine(fruits(i))
Next

Avec une boucle For Each :

Dim fruits As New List(Of String) From {"Pomme", "Banane", "Orange"}
For Each fruit As String In fruits
    Console.WriteLine(fruit)
Next

5. Modifier une Liste

Mettre à jour un élément :

Dim fruits As New List(Of String) From {"Pomme", "Banane", "Orange"}
fruits(1) = "Mangue" ' Remplace "Banane" par "Mangue"
Console.WriteLine(fruits(1)) ' Affiche : Mangue

Supprimer un élément :

  • Par valeur :
fruits.Remove("Orange")
  • Par index :
fruits.RemoveAt(0) ' Supprime "Pomme"
  • Tout effacer :
fruits.Clear()

6. Vérifier l’Existence d’un Élément

Rechercher un élément :

If fruits.Contains("Pomme") Then
    Console.WriteLine("Pomme est dans la liste.")
End If

Trouver l’index d’un élément :

Dim index As Integer = fruits.IndexOf("Orange")
If index <> -1 Then
    Console.WriteLine("Orange trouvé à l'index " & index)
Else
    Console.WriteLine("Orange n'est pas dans la liste.")
End If

7. Trier et Inverser une Liste

Trier une liste :

Dim fruits As New List(Of String) From {"Orange", "Pomme", "Banane"}
fruits.Sort()
For Each fruit As String In fruits
    Console.WriteLine(fruit) ' Affiche : Banane, Orange, Pomme
Next

Inverser l’ordre des éléments :

fruits.Reverse()
For Each fruit As String In fruits
    Console.WriteLine(fruit) ' Affiche : Pomme, Orange, Banane
Next

8. Utiliser des Objets dans une Liste

Les listes peuvent contenir des objets complexes en définissant leur type.

Définir une classe :

Class Personne
    Public Property Nom As String
    Public Property Age As Integer
End Class

Créer une liste d’objets :

Dim personnes As New List(Of Personne) From {
    New Personne With {.Nom = "Jean", .Age = 30},
    New Personne With {.Nom = "Marie", .Age = 25}
}

For Each personne As Personne In personnes
    Console.WriteLine($"{personne.Nom} a {personne.Age} ans.")
Next

9. Utiliser LINQ pour Manipuler les Listes

Le langage intégré aux requêtes (LINQ) permet d’interroger et de manipuler facilement des listes.

Filtrer une liste :

Dim fruits As New List(Of String) From {"Pomme", "Banane", "Orange", "Fraise"}
Dim resultats = From fruit In fruits Where fruit.StartsWith("P") Select fruit

For Each fruit As String In resultats
    Console.WriteLine(fruit) ' Affiche : Pomme
Next

Trouver un élément :

Dim fruit = fruits.FirstOrDefault(Function(f) f = "Banane")
Console.WriteLine(fruit) ' Affiche : Banane

10. Liste vs Tableau

AspectListeTableau
TailleDynamiqueFixe
Ajout/SuppressionFacile (Add, Remove)Impossible
PerformancesLégèrement plus lentesPlus rapides
FlexibilitéTrès flexibleLimité

Exemple Complet : Gestionnaire de Tâches

Module Module1
    Sub Main()
        Dim taches As New List(Of String)

        While True
            Dim choix As String = InputBox("1. Ajouter une tâche" & vbCrLf &
                                           "2. Afficher les tâches" & vbCrLf &
                                           "3. Supprimer une tâche" & vbCrLf &
                                           "4. Quitter")
            Select Case choix
                Case "1"
                    Dim tache As String = InputBox("Entrez une nouvelle tâche :")
                    taches.Add(tache)
                Case "2"
                    Dim listeTaches As String = String.Join(vbCrLf, taches)
                    MsgBox("Liste des tâches :" & vbCrLf & listeTaches)
                Case "3"
                    Dim tache As String = InputBox("Entrez la tâche à supprimer :")
                    If taches.Remove(tache) Then
                        MsgBox("Tâche supprimée.")
                    Else
                        MsgBox("Tâche introuvable.")
                    End If
                Case "4"
                    Exit While
                Case Else
                    MsgBox("Choix invalide.")
            End Select
        End While
    End Sub
End Module

Dans VB.Net, un dictionnaire est une collection de paires clé-valeur, où chaque clé est unique et correspond à une valeur spécifique. Les dictionnaires sont très polyvalents et font partie de l’ System.Collections.Genericespace de noms, en utilisant la Dictionary(Of TKey, TValue)classe.


1. Déclaration et initialisation d’un dictionnaire

Déclaration de base :

Dim myDictionary As New Dictionary(Of String, String)

Ici:

  • Stringest le type de la clé.
  • Stringest le type de la valeur.

Déclaration avec valeurs initiales :

 Dim myDictionary As New Dictionary(Of String, String) From {
{"Key1", "Value1"},
{"Key2", "Value2"},
{"Key3", "Value3"}
}

2. Ajout de paires clé-valeur

Utilisez la Addméthode pour ajouter de nouvelles paires clé-valeur.

Exemple :

 Dim capitals As New Dictionary(Of String, String)
capitals.Add("France", "Paris")
capitals.Add("Spain", "Madrid")
capitals.Add("Italy", "Rome")

Vous pouvez également utiliser la syntaxe de l’indexeur pour ajouter ou mettre à jour des éléments :

 capitals("Germany") = "Berlin" ' Adds a new key-value pair.
capitals("France") = "Marseille" ' Updates the value for the key "France".

3. Accéder aux valeurs

Accédez aux valeurs à l’aide de leurs clés.

Exemple :

 Dim capitals As New Dictionary(Of String, String) From {
{"France", "Paris"},
{"Spain", "Madrid"}
}

Console.WriteLine(capitals("France")) ' Output: Paris

Pour accéder en toute sécurité à une valeur sans risquer un KeyNotFoundException, utilisez TryGetValue:

 Dim value As String
If capitals.TryGetValue("Italy", value) Then
Console.WriteLine(value) ' If found, output the value.
Else
Console.WriteLine("Key not found.")
End If

4. Suppression des paires clé-valeur

Utilisez la Removeméthode pour supprimer un élément par sa clé.

 capitals.Remove("Spain") ' Removes the key "Spain" and its value.

5. Vérification d’une clé ou d’une valeur

  • Vérifier si une clé existe :
 If capitals.ContainsKey("France") Then
Console.WriteLine("France is in the dictionary.")
End If
  • Vérifier si une valeur existe :
 If capitals.ContainsValue("Paris") Then
Console.WriteLine("Paris is a capital.")
End If

6. Itération sur un dictionnaire

Vous pouvez parcourir un dictionnaire en utilisant For Each.

Exemple :

 Dim capitals As New Dictionary(Of String, String) From {
{"France", "Paris"},
{"Spain", "Madrid"},
{"Italy", "Rome"}
}

For Each kvp As KeyValuePair(Of String, String) In capitals
Console.WriteLine($"Country: {kvp.Key}, Capital: {kvp.Value}")
Next

7. Fonctions avancées du dictionnaire

Compter les articles :

Console.WriteLine("Total items: " & capitals.Count)

Effacer tous les éléments :

capitals.Clear() ' Removes all key-value pairs.

Collections de clés et de valeurs :

Vous pouvez obtenir une liste de toutes les clés ou valeurs :

 Dim keys As Dictionary(Of String, String).KeyCollection = capitals.Keys
Dim values As Dictionary(Of String, String).ValueCollection = capitals.Values

For Each key As String In keys
Console.WriteLine("Key: " & key)
Next

For Each value As String In values
Console.WriteLine("Value: " & value)
Next

8. Exemple : Gestion des notes des étudiants

Voici un exemple complet utilisant un dictionnaire pour gérer les notes des étudiants.

 Module Module1
Sub Main()
Dim studentGrades As New Dictionary(Of String, Integer)

' Adding students
studentGrades.Add("Alice", 85)
studentGrades.Add("Bob", 90)
studentGrades.Add("Charlie", 78)

' Displaying all students and their grades
Console.WriteLine("Student Grades:")
For Each kvp As KeyValuePair(Of String, Integer) In studentGrades
Console.WriteLine($"{kvp.Key}: {kvp.Value}")
Next

' Updating a grade
studentGrades("Alice") = 88
Console.WriteLine($"Updated grade for Alice: {studentGrades("Alice")}")

' Removing a student
studentGrades.Remove("Charlie")

' Checking if a student exists
If studentGrades.ContainsKey("Bob") Then
Console.WriteLine("Bob is in the dictionary.")
End If

' Final list of students
Console.WriteLine("Final Student Grades:")
For Each kvp As KeyValuePair(Of String, Integer) In studentGrades
Console.WriteLine($"{kvp.Key}: {kvp.Value}")
Next
End Sub
End Module

Comparaison : Dictionnaire vs Liste

FonctionnalitéDictionnaireListe
Paire clé-valeurOuiNon
Efficacité de la rechercheRapide pour les clésRecherche linéaire requise
DoublonsLes clés doivent être uniques ; les valeurs peuvent être des doublons.Doublons autorisés
CommandePas d’ordre spécifique (mais l’ordre d’insertion est conservé).Conserve les ins

Résumé

  • Un dictionnaire est un
  • Utilisez des dictionnaires lorsque vous avez besoin de recherches rapides b
  • Combiner avec For Each, TryGetValue, et ContainsKeypour sa

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 : Tableaux d’Objets en VB.Net
Un tableau d’objets en VB.Net est une structure de données...
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 *