Siehe, der C# -Code:Eine Methode, die ein IEnumerable zurückgibt, kann seine Ausgabe von einer anderen Methode mit demselben Rückgabetyp abrufen?
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;
}
}
}
Die Frage ist: Es gibt einen Weg für outerMethod die gleiche Leistung haben über innerMethod Ausgang ohne laufen?
Dies ist eine ziemlich häufig angeforderte Funktion, die normalerweise "Ertrag foreach" genannt wird. Wir unterstützen das nicht, aber einige "Forschungs" -Varianten von C# wie C-Omega tun es. Sie sollten Wes's Artikel darüber lesen: http://blogs.msdn.com/wesdyer/archive/2007/03/23/all-about-iterators.aspx –
mögliche Duplikate von [Yield Return Many?] (Http: // stackoverflow.com/questions/3851997/yield-return-many) – nawfal