我可以在循环外调用yield return方法吗?

时间:2013-06-06 16:05:41

标签: c# yield-return

在某些情况下,方法应该与收益率回报一起使用,但在其他方法中则不然。

问题是,如果使用带有yield return的方法为变量赋值,则只返回一个项目。

在这种情况下,需要两种方法,一种用于常规使用,另一种用于产量回报。

有没有办法在循环外使用带有yield return的方法?

2 个答案:

答案 0 :(得分:4)

你的意思是你可以在循环之外使用 yield return吗?

答案是肯定的:

IEnumerable<string> GetStrings()
{
    yield return "foo";
    yield return "bar";
    yield return "baz";
}

...但这是yield return的一个不寻常的用例。

答案 1 :(得分:0)

使用yield return的方法会返回IEnumerable,也可能会返回IEnumerable<int>更具体的内容。如果您只对第一项感兴趣,可以致电:

int myInt = myYieldReturnMethod().First();