foreach in C# recalculation
<p>If I write a foreach statment in C#:</p>

<pre><code>foreach(String a in veryComplicatedFunction())
{

}
</code></pre>

<p>Will it calculate veryComplicatedFunction every iteration or only once, and store it somewhere?</p>

<p>Please answer this question if you really KNOW the answer.</p>
