Avatar ·

À quoi sert le mot-clé yield en C# ? Comment utiliser yield return et yield break ?

Bonjour à tous ! Je viens de commencer à apprendre C# et je suis tombé sur le mot-clé `yield`. Honnêtement, je ne comprends pas bien à quoi il sert ni comment l'utiliser correctement. J'ai vu des exemples où `yield return` est utilisé dans des méthodes qui retournent `IEnumerable` ou `IEnumerable`. Mais j'ai deux questions : 1. Quelle est la différence entre le retour normal d'une collection (par exemple, `List` via `return`) et l'utilisation de `yield return` ? 2. Quand est-ce vraiment nécessaire dans des projets réels, et pas seulement dans des exemples pédagogiques ? Voici un exemple que j'ai trouvé sur MSDN, mais il me semble étrange : ```csharp static IEnumerable GetNumbers() { for (int i = 0; i < 10; i++) { yield return i; } } ``` Pourquoi ne pas simplement faire ceci ? ```csharp static List GetNumbers() { List list = new List(); for (int i = 0; i < 10; i++) { list.Add(i); } return list; } ``` Le résultat semble pourtant le même — nous obte