Yield关键字的确切用法是什么?
这个问题在这里已经有了答案:
直接从MSDN
您使用yield return语句一次返回一个元素。当在迭代器方法中达到yield return语句时,将返回expression,并保留代码中的当前位置。 下一次调用迭代器函数时,将从该位置重新启动执行。
编辑:要获取详细信息,请参阅此系列文章。
使用yield return
来包装已经是IEnumerable的东西是很浪费的。
yield return
可用于将不包含IEnumerable的东西包装到IEnumerable中。
如此:
public IEnumerable<string> GetNames()
{
yield return "Cow";
yield return "Goat";
yield return "Lion";
yield return "Deer";
}
或者真正有意义的东西,比如树遍历。
例:
public IEnumerable<MyClass> GetList()
{
foreach (var item in SomeList)
{
yield return new MyClass();
}
}
链接地址: http://www.djcxy.com/p/9091.html