是集计算机在每次迭代

是集计算机在每次迭代

本文介绍了C#的foreach - 是集计算机在每次迭代?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能重复:结果

标题中有问题的心脏。下面是一个示例场景来充实它多一些。

Title has the heart of the question in it. Here's an example scenario to flesh it out some more.

foreach(something thing in GetSomethings())
{ dosomething }

比方说GetSomethings有副作用。将GetSomethings被执行一次还是会得到每次执行循环迭代?

Lets say GetSomethings has side effects. Will GetSomethings be executed once or will it get executed for each time the loop iterates?

推荐答案

Foreach源使用的IEnumerable 接口,它检索枚举器一次,并用它来遍历集合。

Foreach uses IEnumerable interface, it retrieves the Enumerator once, and uses it to traverse the collection.

所以,这是完全安全的一个复杂的函数中使用的foreach ,它不重新计算每次集合

So it's perfectly safe to use foreach on a complex function, it doesn't re-calculate the collection each time.

这篇关于C#的foreach - 是集计算机在每次迭代?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-21 17:03