Voici, le code C#:Une méthode qui renvoie un IEnumerable peut obtenir sa sortie d'une autre méthode avec le même type de retour?
IEnumerable<int> innerMethod(int parameter)
{
foreach(var i in Enumerable.Range(0, parameter))
{
yield return i;
}
}
IEnumerable<int> outerMethod(int parameter)
{
foreach(var i in Enumerable.Range(1, parameter))
{
foreach(var j in innerMethod(i))
{
yield return j;
}
}
}
La question est: Il y a une façon de outerMethod ont la même sortie sans itérer sur la sortie innerMethod?
Il s'agit d'une caractéristique assez fréquemment appelée "yield foreach". Nous ne le supportons pas, mais certaines variantes de "recherche" de C# comme C-Omega le font. Vous devriez lire l'article de Wes à ce sujet: http://blogs.msdn.com/wesdyer/archive/2007/03/23/all-about-iterators.aspx –
duplicata possible de [Yield Return Many?] (Http: // stackoverflow.com/questions/3851997/yield-return-many) – nawfal