Ceci est une ancienne révision du document !
Exemple d'utilisation et explications : http://www.ytechie.com/2009/02/using-c-yield-for-readability-and-performance/
On peut le comparer au streaming vidéo : plutôt que de devoir télécharger toute une vidéo avant de la lire, on peut la regarder au fur et à mesure qu'on la télécharge. Et si on arrête de la regarder pas besoin de télécharger la fin de la vidéo.
IList<string> FindBobs(IEnumerable<string> names) {
var bobs = new List<string>();
foreach(var currName in names)
{
if(currName == "Bob")
bobs.Add(currName);
}
return bobs;
}
devient :
IEnumerable<string> FindBobs(IEnumerable<string> names)
{
foreach(var currName in names)
{
if(currName == "Bob")
yield return currName;
}
}