foreach循环如何工作?

时间:2016-03-17 11:38:44

标签: c# linq foreach

IMongoCollection<JobInfoRecord> records = ...
foreach (var record in records.Find(query).ToListAsync().Result)
{...}

foreach迭代是否一次又一次地计算.Result值?

1 个答案:

答案 0 :(得分:1)

不,它会评估records.Find(query).ToListAsync().Result一次,然后在结果上调用GetEnumerator。然后每个循环将在返回的&#34;枚举器&#34;上调用MoveNext。并将record设置为&#34;枚举器&#34;的Current属性MoveNext返回false时,循环中断。