using System;
using System.Linq;
public class Test
{
public static void Main()
{
var list = new byte[] { 0, 0, 1, 0, 1 };
int LinqCnt = 0;
var tmp = list.Where(x =>
{
LinqCnt++;
Console.WriteLine("In where: " + LinqCnt);
return x > 0;
});
Console.WriteLine("After where: " + LinqCnt);
foreach (var n in tmp)
Console.WriteLine("Enumerating: " + n);
Console.WriteLine("After enumeration: " + LinqCnt);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKICAgIHsKICAgICAgICB2YXIgbGlzdCA9IG5ldyBieXRlW10geyAwLCAwLCAxLCAwLCAxIH07CiAgICAgICAgaW50IExpbnFDbnQgPSAwOwogICAgICAgIHZhciB0bXAgPSBsaXN0LldoZXJlKHggPT4KICAgICAgICB7CiAgICAgICAgICAgIExpbnFDbnQrKzsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkluIHdoZXJlOiAiICsgTGlucUNudCk7CiAgICAgICAgICAgIHJldHVybiB4ID4gMDsKICAgICAgICB9KTsKCiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkFmdGVyIHdoZXJlOiAiICsgTGlucUNudCk7CgogICAgICAgIGZvcmVhY2ggKHZhciBuIGluIHRtcCkKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkVudW1lcmF0aW5nOiAiICsgbik7CgogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJBZnRlciBlbnVtZXJhdGlvbjogIiArIExpbnFDbnQpOwogICAgfQp9