fork download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. class Test
  6. {
  7.  
  8. static void Main()
  9. {
  10. string[] test = new string[] { "a", "sdj", "bb", "d444"};
  11. var expensivePrint = false;
  12. IEnumerable<int> ls = test.Select(s => { if (expensivePrint) { Console.WriteLine("Doing expensive math"); } return s.Length; });
  13. expensivePrint = true;
  14. foreach (var v in ls)
  15. {
  16. Console.WriteLine(v);
  17. }
  18. Console.WriteLine("If you dont think it does it everytime, lets try it again");
  19. foreach (var v in ls)
  20. {
  21. Console.WriteLine(v);
  22. }
  23. }
  24. }
Success #stdin #stdout 0.03s 37080KB
stdin
Standard input is empty
stdout
Doing expensive math
1
Doing expensive math
3
Doing expensive math
2
Doing expensive math
4
If you dont think it does it everytime, lets try it again
Doing expensive math
1
Doing expensive math
3
Doing expensive math
2
Doing expensive math
4