La boucle Foreach
"Le
foreach, c’est comme dire à l’ordinateur : ‘Parcours-moi tout ça, je te fais confiance.’" ✨
Qu’est-ce qu’une boucle foreach ?
La boucle foreach est utilisée pour parcourir tous les éléments d’une collection (tableau, liste, etc.) sans se soucier de l’index.
C’est la boucle idéale quand : - On veut traiter chaque élément d’un tableau ou d’une collection, - On n’a pas besoin de connaître la position (indice) de l’élément.
“Pour chaque élément dans cette collection, fais quelque chose avec lui.”
Structure générale
foreach (type element in collection)
{
instructions;
}
-
type: le type des éléments contenus dans la collection (ex. int, string, etc.) -
element: une variable temporaire représentant chaque élément -
collection: un tableau, une liste, ou toute structure "itérable"
Exemple simple : affichage d’un tableau
string[] prenoms = { "Alice", "Bob", "Charlie" };
foreach (string prenom in prenoms)
{
Console.WriteLine("Bonjour " + prenom);
}
Résultat
Bonjour Alice
Bonjour Bob
Bonjour Charlie
Comparaison avec la boucle for
for |
foreach |
|---|---|
| Utilise un compteur | Ne nécessite aucun index |
| Permet un contrôle précis | Parcours tout automatiquement |
| Requiert de connaître la taille de la collection | Gère ça en interne |
| Possibilité de modifier des éléments via l’index | Lecture seule dans la plupart des cas |
⚠️Erreurs fréquentes
-
❌ Modifier la collection pendant le parcours → risque d'erreur d'exécution
-
❌ Essayer de changer la valeur de element → n’a aucun effet sur la collection
foreach (int val in tableau)
{
// ❌ Cela ne modifie pas les valeurs dans le tableau
val = val * 2;
}
✅ Si on veut modifier, il faut passer par une boucle for.
Astuce : avec des types complexes
List<Etudiant> classe = new List<Etudiant>();
foreach (Etudiant e in classe)
{
Console.WriteLine(e.Nom + " - " + e.Note);
}
🔹 On peut parcourir une liste d’objets comme n’importe quelle autre collection.
Quiz
Testez vos connaissances ! 📝 Clique sur chaque question pour voir la réponse ✅
1️⃣ À quoi sert la boucle foreach ?
A. À exécuter une instruction un nombre précis de fois
B. À parcourir tous les éléments d’une collection sans utiliser d’index
C. À créer une nouvelle collection
D. À répéter une opération en fonction d’une condition booléenne
✅ Réponse : B. La boucle foreach permet de parcourir facilement tous les éléments d'une collection (tableau, liste...) sans gérer d'indice..
2️⃣ CQuel est le résultat affiché par ce code ?
✅ Réponse : B. Le code affiche chaque élément du tableau dans l'ordre :
string[] animaux = { "Chat", "Chien", "Lapin" };
foreach (string a in animaux)
{
Console.Write(a + " ");
}
A. Chien Chat Lapin
B. Chat Chien Lapin
C. a a a
D. Erreur de compilation
Chat Chien Lapin.
3️⃣ Quelle affirmation est vraie concernant le
✅ Réponse : C. Il est déconseillé (voire interdit) de modifier la collection (ajouter ou supprimer des éléments) pendant un foreach ?
A. On peut modifier les éléments du tableau en les multipliant directement dans la boucle
B. foreach permet de parcourir uniquement les tableaux, pas les listes
C. foreach empêche de modifier la structure d’une collection pendant le parcours
D. Il est obligatoire d’utiliser un compteur i dans un foreach
foreach, car cela déclenche une exception.
4️⃣ Laquelle des syntaxes suivantes est correcte ? ?
A. foreach string s in noms
B. foreach (noms in string s)
C. foreach (string s in noms)
D. for (string s : noms)
✅ Réponse : C. La syntaxe correcte en C# est foreach (type variable in collection)
5️⃣ Pourquoi ce code ne modifie-t-il pas les valeurs du tableau ?
✅ Réponse : B.
int[] nombres = { 1, 2, 3 };
foreach (int n in nombres)
{
n = n * 2;
}
A. Parce que la boucle n’est jamais exécutée
B. Parce que n est une copie de chaque valeur du tableau
C. Parce que le foreach ne supporte pas les entiers
D. Parce que la syntaxe est incorrecte
n est une copie de chaque valeur du tableau. Modifier n ne change pas les valeurs originales dans le tableau.
Navigation
Introduction for while do...while foreach Travail pratique
Pour aller plus loin
-
Documentation Microsoft – Instruction foreach en C#
Page officielle qui explique en détail la syntaxe et le comportement deforeach, avec des exemples sur les tableaux, les collections génériques et les itérateurs personnalisés. -
Microsoft Learn – Branches et boucles en C#
Tutoriel interactif en ligne proposé par Microsoft pour apprendre à utiliser les conditions et boucles, dontforeach, dans des cas concrets avec un éditeur intégré.
- Cours C# – Module sur les boucles (YouTube)
Une vidéo claire et pédagogique en français sur les différentes boucles (for,while,foreach), utile pour visualiser leur usage avec des exemples commentés.
-
W3Schools – C# foreach Loop
Une introduction simple et interactive à la boucleforeach, idéale pour les débutants. Elle inclut des exemples testables directement dans le navigateur. -
Programiz – C# foreach Loop
Explication complète et claire de la boucleforeach, avec illustrations pratiques, exemples de code et tableaux comparatifs pour débutants. -
Dot Net Tutorials – Foreach Loop in C#
Un tutoriel structuré qui montre l’intérêt deforeachdans différents contextes (listes, dictionnaires, tableaux), avec des cas d’erreurs fréquentes à éviter.