Boucles Foreach C# : Parcourir tableaux et collections facilement
Boucles Foreach C#
Découvrez comment la boucle foreach simplifie l'itération sur les tableaux et collections en C#, améliorant la lisibilité et la performance.
En C#, la boucle foreach offre une alternative plus propre et plus expressive à la boucle for traditionnelle lors du travail avec des tableaux, listes et autres collections. Elle gère automatiquement l'indexation, rendant votre code plus facile à lire et moins sujet aux erreurs.
Avant de plonger, révisez ces sujets fondamentaux :
Syntaxe de la boucle foreach
foreach (élément in élémentItérable) {
// corps de la boucle foreach
}
L'élémentItérable peut être un tableau, une liste, ou tout type qui implémente IEnumerable.
Fonctionnement de la boucle foreach

Le mot-clé in sélectionne chaque élément de élémentItérable à chaque itération et l'assigne à la variable élément. La boucle s'exécute une fois par élément, donc le nombre d'itérations équivaut au nombre d'éléments dans la collection.
Exemple 1 : Affichage d'un tableau avec une boucle for
using System;
namespace Loop {
class ForLoop {
public static void Main(string[] args) {
char[] myArray = {'H','e','l','l','o'};
for (int i = 0; i < myArray.Length; i++) {
Console.WriteLine(myArray[i]);
}
}
}
}
Exemple 2 : Affichage d'un tableau avec une boucle foreach
using System;
namespace Loop {
class ForEachLoop {
public static void Main(string[] args) {
char[] myArray = {'H','e','l','l','o'};
foreach (char ch in myArray) {
Console.WriteLine(ch);
}
}
}
}
Les deux programmes produisent :
H e l l o
La version foreach est plus courte, élimine les calculs d'index et réduit le risque d'erreurs de décalage d'un (off-by-one).
Exemple 3 : Comptage des hommes et femmes dans un tableau de genres
Cet exemple compte les occurrences de 'm' et 'f' dans un tableau.
using System;
namespace Loop {
class GenderCount {
public static void Main(string[] args) {
char[] gender = {'m','f','m','m','m','f','f','m','m','f'};
int male = 0, female = 0;
foreach (char g in gender) {
if (g == 'm') male++;
else if (g == 'f') female++;
}
Console.WriteLine("Nombre d'hommes = {0}", male);
Console.WriteLine("Nombre de femmes = {0}", female);
}
}
}
Sortie :
Nombre d'hommes = 6 Nombre de femmes = 4
Exemple 4 : Somme d'une liste avec foreach
L'utilisation d'un List<int> démontre que foreach fonctionne parfaitement avec les collections génériques.
using System;
using System.Collections.Generic;
namespace Loop {
class SumList {
public static void Main(string[] args) {
var numbers = new List<int>() { 5, -8, 3, 14, 9, 17, 0, 4 };
int sum = 0;
foreach (int number in numbers) {
sum += number;
}
Console.WriteLine("Somme = {0}", sum);
Console.ReadLine();
}
}
}
Résultat :
Somme = 44
Dans les scénarios de tableau et de collection, foreach fournit un code plus propre et plus maintenable. Préférez-le chaque fois que vous n'avez besoin que de lire les éléments et n'avez pas besoin de manipulation directe d'index.
Langue C
- Maîtriser les boucles While et Do-While en C# : Syntaxe, exemples et bonnes pratiques
- Maîtriser les boucles For en C# : Syntaxe, flux et exemples pratiques
- Maîtriser les boucles for en C++ : Guide étape par étape
- Boucles while et do-while en C++ – Maîtriser la répétition dans votre code
- Maîtriser la boucle for en C : Syntaxe, mécanique et exemples pratiques
- Maîtriser les boucles while et do-while en C : Exemples pratiques
- Maîtriser les boucles for en Python : Syntaxe, exemples et motifs avancés
- Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
- Boucle do-while en C++ : Syntaxe, exemples pratiques et boucles imbriquées