En C#, le mot-clé yield est utilisé pour produire des éléments un par un dans une méthode itérative, souvent dans une boucle. Il permet de créer facilement des itérateurs personnalisés sans avoir à implémenter manuellement IEnumerator ou IEnumerable.
Il existe deux formes principales :
🔁 yield return
Elle permet de retourner un élément à la fois d'une collection, et de reprendre l'exécution là où elle s'était arrêtée.
IEnumerable<int> CompterJusqua(int max)
{
for (int i = 1; i <= max; i++)
{
yield return i;
}
}
Utilisation :
foreach (int n in CompterJusqua(5))
{
Console.WriteLine(n);
}
Affiche : 1, 2, 3, 4, 5
❌ yield break
Cela interrompt l’itération prématurément, comme un break dans une boucle.
IEnumerable<int> CompterEtArreter(int max)
{
for (int i = 1; i <= max; i++)
{
if (i == 3)
yield break; // stop ici
yield return i;
}
}
Résultat : 1, 2
⚙️ À quoi ça sert ?
-
Économise de la mémoire (pas besoin de créer une liste entière).
-
Permet l’évaluation paresseuse (lazy evaluation).
-
Simplifie grandement la logique d’itération.
Aucun commentaire:
Enregistrer un commentaire