返回 IEnumerable 的方法可以从具有相同返回类型的另一个方法获取其输出吗?
看一下 C# 代码:
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;
}
}
}
问题是:有没有一种方法可以让outerMethod 具有相同的输出而不迭代innerMethod 输出?
Behold the C# code:
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;
}
}
}
The question is: There is a way for outerMethod have the same output without iterating over innerMethod output?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不幸的是没有。
在 F# 中,您可以执行类似的操作
,但在 C# 中没有等效的操作。
我的意思是,在这种特殊情况下,您可以将该方法替换为:
但我希望您想要一种更通用的方法来实现它。 (如果这有帮助,那就太好了!)
Unfortunately not.
In F# you could do something like
but there's no equivalent in C#.
I mean, in this particular case you could replace the method with:
but I expect you wanted a more general purpose way of doing it. (If that helps though, great!)