请考虑以下 C# 块:
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
块的第一次迭代中,将返回 results 的第一个结果而不是第二个结果。
所以,基本上这是我的问题:我无法从迭代器方法中获取第一个值,然后在不重新启动此方法的情况下在其他地方使用它。
有人知道一些解决方法吗?