VB.NET

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

×

Recommandés

Guide : Trier un Tableau en VB.Net
Trier un tableau en VB.Net consiste...
En savoir plus
Guide pratique : Déclaration d’un objet en...
La déclaration d’un objet en VB.NET...
En savoir plus
Guide : Comment ouvrir une base de...
Ce guide explique étape par étape...
En savoir plus
Guide : Afficher une miniature d’un fichier...
En VB.NET, il n’existe pas de...
En savoir plus
Fermer un Formulaire et Ouvrir un Autre...
Dans une application Windows Forms en...
En savoir plus
Ouvrir un fichier de rapport Crystal Reports...
Crystal Reports est un outil puissant...
En savoir plus

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

Recommandés

Guide : Désérialiser un Tableau JSON avec...
Newtonsoft.Json (ou Json.NET) est une bibliothèque...
En savoir plus
Guide : Manipulation des Tableaux de Chaînes...
Un tableau de chaînes en VB.Net...
En savoir plus
Série d'Exercices Corrigés sur VB.Net
Voici une série d'exercices corrigés sur...
En savoir plus
Guide : Déclaration d’un objet en VB.NET...
VB.NET (Visual Basic .NET) est un...
En savoir plus
Comment lire un fichier Crystal Reports ?
Pour lire un fichier Crystal Reports...
En savoir plus
Les Contraintes Génériques en VB.NET
Les contraintes génériques sont utilisées pour...
En savoir plus
AZ

Share
Published by
AZ

Recent Posts

Fiche processus comptabilité iso 9001: modèle Excel

Derrière l’apparente rigueur des chiffres, la comptabilité suit en réalité un chemin très concret, fait…

6 heures ago

Pages de garde de mémoire Master sur la transformation digitale et la performance des PME

Quand on parle d’un mémoire de Master, on pense tout de suite au sujet, à…

1 jour ago

Modèle Excel de plan de classification des documents administratifs

Les rouages d’une entreprise se jouent rarement sous les projecteurs. Ce qui apparaît à l’extérieur…

2 jours ago

Pages de garde de mémoire utilisées dans les universités françaises

Quand on prépare un mémoire, on consacre souvent l’essentiel de son énergie au plan, à…

2 jours ago

Modèle Excel d’analyse financière automatisée avec graphiques

Dans beaucoup d’entreprises, l’analyse financière commence souvent de la même manière : une pile de…

2 jours ago

Méthodologie SVT : réussir l’analyse de document en SVT

Télécharger une fiche méthode pratique et utile ⬇️ L’analyse de document en SVT fait partie…

3 jours ago

This website uses cookies.