Utilisation de collections pour gérer plusieurs objets
Mise à jour : novembre 2007
Dans cette leçon, vous apprendrez comment utiliser une collection pour gérer des groupes d'objets.
Dans une leçon précédente, vous avez appris l'utilisation de tableaux pour gérer des groupes de variables. Même si vous pouvez utiliser des tableaux pour gérer des groupes d'objets, Visual Basic propose également un type d'objet spécial appelé collection qui peut être utilisé pour stocker et récupérer des groupes d'objets similaires.
Comme un tableau, chaque élément d'un objet Collection dispose d'un index qui permet de l'identifier. De plus, chaque élément d'un objet Collection dispose d'une clé, une valeur String qui permet de l'identifier. L'avantage que confère l'utilisation d'une clé tient dans ce que vous n'êtes pas contraint de mémoriser l'index d'un élément ; vous pouvez y faire référence au moyen d'un nom explicite.
Création d'une collection
Les collections sont utiles lorsque votre programme utilise plusieurs instances d'une même classe. Par exemple, examinez la classe Players que vous avez créée dans une leçon précédente. Vous aurez sans aucun doute besoin de plusieurs objets Players pour représenter une équipe de base-ball complète.
La première étape pour créer une collection consiste à créer une instance d'un objet Collection, comme illustré dans la déclaration suivante.
Dim baseballTeam As New Collection
Une fois l'objet Collection créé, vous pouvez utiliser la méthode Add pour lui ajouter des éléments, et la méthode Remove pour supprimer ces éléments. Lors de l'ajout d'éléments, spécifiez en premier lieu l'élément à ajouter, puis spécifiez la valeur String à utiliser en tant que clé.
baseballTeam.Add(playerObject, "Player's Name")
Lorsque vous supprimez un élément, utilisez la clé pour spécifier l'élément à supprimer.
baseballTeam.Remove("Player's Name")
Dans la procédure suivante, vous ajouterez deux nouveaux objets Players. Ensuite, vous créerez une collection team et lui ajouterez les objets Players à l'aide de la propriété Position définie en tant que clé.
Essayez !
Pour créer une collection d'objets
Ouvrez le projet Persons que vous avez créé dans la leçon précédente. Si vous ne l'avez pas enregistré, revenez à la leçon précédente, Génération d'une classe à partir d'une classe existante : utilisation de l'héritage, et terminez les procédures.
Dans l'Explorateur de solutions, sélectionnez le nœud Form1.vb dans le projet PlayerTest, puis dans le menu Affichage, sélectionnez Code.
Dans l'éditeur de code, ajoutez le code suivant à la section des déclarations (sous la déclaration de player2).
Dim player3 As New Persons.Players Dim player4 As New Persons.Players Dim team As New Collection
Ajoutez le code suivant à la procédure événementielle Form1_Load.
With player3 .FirstName = "Eduardo" .LastName = "Saavedra" .Number = 52 .Position = "First Base" End With With player4 .FirstName = "Karl" .LastName = "Jablonski" .Number = 22 .Position = "Pitcher" End With team.Add(player1, player1.Position) team.Add(player2, player2.Position) team.Add(player3, player3.Position) team.Add(player4, player4.Position)
Dans l'Explorateur de solutions, sélectionnez le nœud Form1.vb du projet PlayerTest. Ensuite, dans le menu Affichage, choisissez Concepteur.
À partir de la Boîte à outils, faites glisser un contrôle ComboBox dans le formulaire.
Dans la fenêtre Propriétés, sélectionnez la propriété Éléments, puis cliquez sur le bouton Sélection (…).
Dans l'éditeur de collections String, entrez le code suivant, puis cliquez sur OK.
Catcher
First Base
Pitcher
Shortstop
Double-cliquez sur le contrôle ComboBox pour ouvrir l'éditeur de code, puis dans le gestionnaire d'événements ComboBox1_SelectedIndexChanged, saisissez le code suivant.
Dim SelectedPlayer As Persons.Players SelectedPlayer = team(ComboBox1.SelectedItem) MsgBox("Playing " & ComboBox1.SelectedItem & " is " & _ SelectedPlayer.FullName & "!")
Appuyez sur F5 pour exécuter le programme. Sélectionnez un poste de jeu dans la liste déroulante ; le joueur à ce poste s'affiche dans un message.
Étapes suivantes
Dans cette leçon, vous avez appris comment utiliser un objet Collection pour gérer un groupe d'objets. À ce stade, vous pouvez choisir d'en savoir plus sur les collections dans Présentation détaillée : utilisation d'une boucle For Each...Next dans une collection, ou de passer au groupe de leçons suivantes pour apprendre à créer vos propres contrôles.
Leçon suivante : Objets visibles : création de votre premier contrôle utilisateur
Voir aussi
Tâches
Présentation détaillée : utilisation d'une boucle For Each...Next dans une collection
Présentation détaillée : substitution de membres
Génération d'une classe à partir d'une classe existante : utilisation de l'héritage
Concepts
Classe de la collection Visual Basic
Autres ressources
Objets visibles : création de votre premier contrôle utilisateur