小编Nic*_*ico的帖子

在C#中返回IEnumerable实例和yield return语句之间的确切区别是什么?

目前我正在使用一些通过迭代器应用延迟执行的库.在某些情况下,我需要简单地"转发"收到的迭代器.即我必须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)

c# ienumerable

9
推荐指数
1
解决办法
302
查看次数

标签 统计

c# ×1

ienumerable ×1