If I write a foreach statment in C#:
foreach(String a in veryComplicatedFunction()) { }
Will it calculate veryComplicatedFunction every iteration or only once, and store it somewhere?