目前我正在使用一些通过迭代器应用延迟执行的库.在某些情况下,我需要简单地"转发"收到的迭代器.即我必须IEnumerable<T>从被调用的方法获取实例并立即返回它.
现在我的问题是:简单地返回收到的IEnumerable<T>或通过循环重新产生它之间是否存在相关差异?
IEnumerable<int> GetByReturn()
{
return GetIterator(); // GetIterator() returns IEnumerable<int>
}
// or:
IEnumerable<int> GetByReYielding()
{
for(var item in GetIterator()) // GetIterator() returns IEnumerable<int>
{
yield return item;
}
}
Run Code Online (Sandbox Code Playgroud)