请考虑下面的C#块:如何避免Iterator方法重新启动?
int resultIndex = 0;
Result firstResult = results.First();
DoAVeryImportOperationWithFirstResult(firstResult);
Console.WriteLine(String.Format("This is the {0} result.", resultIndex++));
yield return firstResult;
foreach(Result result in results)
{
Console.WriteLine(String.Format("This is the {0} result.", resultIndex++));
yield return result;
}
如果您正在使用LINQ和迭代熟悉,你会发现,在foreach
块的第一次迭代,从结果的第一个结果将被替代返回的第二个。
所以,基本上这是我的问题:我无法从迭代器方法获取第一个值,然后在不重新启动此方法的情况下在其他位置使用它。
有人知道这方面的一些解决方法?
该死!再次击败它。 – 2013-02-19 22:09:39