在某些情况下,方法应该与yield return一起使用,而在其他情况下则不应使用。
问题是,如果使用带有yield return的方法给变量赋值,则只返回一项。
在这种情况下,将需要两种方法,一种用于常规使用,另一种具有yield return。
是否有一些方法可以在循环外使用yield返回方法?
你的意思是你可以在循环之外使用 yield return
吗?
答案是肯定的:
IEnumerable<string> GetStrings()
{
yield return "foo";
yield return "bar";
yield return "baz";
}
…但这将是yield return
的一个不寻常的用例。
使用yield return
的方法将返回IEnumerable
和可能更具体的东西,如IEnumerable<int>
。如果您只对第一个项目感兴趣,您可以拨打:
int myInt = myYieldReturnMethod().First();