有没有办法在不保留计数器变量的情况下从函数中获得收益率返回数?例如?
IEnumerable<someobject> function
{
for loop
yield return something
int numberreturned = ....
}
Run Code Online (Sandbox Code Playgroud)
Fré*_*idi 10
那会破坏目的yield return.
使用yield return你想实现一个发生器装置(MSDN调用一个迭代器块),即每一个计算返回值的对象上飞.根据定义,生成器可能是无限的,因此控制可能永远不会离开您的for循环.
流以相同的方式工作.要计算流的长度,你必须耗尽它,你可能永远不会从这样做回来.毕竟,数据可能来自无限来源(例如/ dev/zero).