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< int> 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) ;
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKY2xhc3MgVGVzdAp7CgogICAgc3RhdGljIHZvaWQgTWFpbigpCiAgICB7CiAgICAgICAgc3RyaW5nW10gdGVzdCA9IG5ldyBzdHJpbmdbXSB7ICJhIiwgInNkaiIsICJiYiIsICJkNDQ0In07CiAgICAgICAgdmFyIGV4cGVuc2l2ZVByaW50ID0gZmFsc2U7CiAgICAgICAgSUVudW1lcmFibGU8aW50PiBscyA9IHRlc3QuU2VsZWN0KHMgPT4geyBpZiAoZXhwZW5zaXZlUHJpbnQpIHsgQ29uc29sZS5Xcml0ZUxpbmUoIkRvaW5nIGV4cGVuc2l2ZSBtYXRoIik7IH0gcmV0dXJuIHMuTGVuZ3RoOyB9KTsKICAgICAgICBleHBlbnNpdmVQcmludCA9IHRydWU7CiAgICAgICAgZm9yZWFjaCAodmFyIHYgaW4gbHMpCiAgICAgICAgewogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSh2KTsKICAgICAgICB9CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIklmIHlvdSBkb250IHRoaW5rIGl0IGRvZXMgaXQgZXZlcnl0aW1lLCBsZXRzIHRyeSBpdCBhZ2FpbiIpOwogICAgICAgIGZvcmVhY2ggKHZhciB2IGluIGxzKQogICAgICAgIHsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUodik7CiAgICAgICAgfQogICAgfQp9