using System; using System.Collections.Generic; using System.IO; using System.Linq; class Test { static void Main() { string[] test = new string[] { "a", "sdj", "bb", "d444"}; var expensivePrint = false; IEnumerable ls = test.Select(s => { if (expensivePrint) { Console.WriteLine("Doing expensive math"); } return s.Length; }); expensivePrint = true; foreach (var v in ls) { Console.WriteLine(v); } Console.WriteLine("If you dont think it does it everytime, lets try it again"); foreach (var v in ls) { Console.WriteLine(v); } } }