Présentation détaillée : utilisation d'une boucle For Each...Next dans une collection

Mise à jour : novembre 2007

Dans cette leçon, vous apprendrez à utiliser une boucle For Each...Next pour appliquer une boucle à une collection.

Dans une leçon précédente, vous avez appris à utiliser une boucle For...Next pour exécuter un bloc de code un nombre de fois spécifié. Les objets de collection Visual Basic prennent en charge un type de boucle spécial : la boucle For Each...Next, que vous pouvez utiliser pour exécuter un bloc de code pour chaque élément de la collection plutôt qu'un nombre de fois défini.

Ajout d'une boucle For Each...Next

Dans la leçon précédente, vous avez ajouté manuellement les valeurs destinées à la propriété Position des objets Players de la collection de l'équipe au contrôle ComboBox. Si cette technique fonctionne dans le cadre de l'exemple, elle ne constitue pas la meilleure pratique ; chaque fois que vous ajoutiez un nouveau joueur, vous deviez également mettre à jour la collection Items du contrôle ComboBox.

Une meilleure méthode pour gérer cette situation consiste à ajouter les valeurs Position à la collection Items en appliquant une boucle à la collection team à l'aide d'une boucle For Each...Next.

Dans une boucle For...Next, vous devez d'abord déclarer une variable de compteur ; avec une boucle For Each...Next, vous devez d'abord déclarer une variable objet. Le code ci-dessous illustre l'utilisation d'une boucle For Each...Next.

Dim player As Persons.Players
For Each player In team
    ComboBox1.Items.Add(player.Position)
Next

Dans ce cas, peu importe combien de Players vous avez ; la méthode ComboBox1.Items.Add est exécutée une fois pour chaque objet Players dans la collection de l'équipe, et la valeur Position est ajoutée à la liste.

Essayez !

Pour appliquer une boucle à une collection

  1. Ouvrez le projet Persons de la leçon précédente. Si vous ne l'avez pas terminé, revenez à la leçon précédente, Utilisation de collections pour gérer plusieurs objets, et terminez les procédures.

  2. Dans l'Explorateur de solutions, sélectionnez le nœud Form1.vb dans le projet PlayerTest, puis dans le menu Affichage, sélectionnez Concepteur.

  3. Sélectionnez le contrôle ComboBox. Ensuite, dans la fenêtre Propriétés, sélectionnez la propriété Items et cliquez sur le bouton Sélection (...).

  4. Dans l'éditeur de collections String, supprimez les quatre entrées existantes, puis cliquez sur OK.

  5. Double-cliquez sur le formulaire pour ouvrir l'éditeur de code.

  6. Dans l'éditeur de code, ajoutez le code suivant à la section des déclarations (sous la déclaration de team).

    Dim player As Persons.Players
    For Each player In team
        ComboBox1.Items.Add(player.Position)
    Next
    
  7. Appuyez sur F5 pour exécuter le programme. Sélectionnez une position dans la liste déroulante. Le joueur qui occupe ce poste est affiché dans un message.

Étapes suivantes

Dans cette leçon, vous avez utilisé une boucle For Each...Next dans une collection. Dans les leçons suivantes, vous créerez un autre type d'objet ; un contrôle utilisateur.

Leçon suivante : Objets visibles : création de votre premier contrôle utilisateur

Voir aussi

Tâches

Utilisation de collections pour gérer plusieurs objets

Référence

For Each...Next, instruction (Visual Basic)

Autres ressources

Programmation avec des objets : utilisation de classes