Наверное, глупый вопрос, но у меня много:
if(X)
{
foreach(var Y in myList.Where(z => z == 1)
{
}
}
создает в некотором коде
Заменяет его на
foreach(var Y in myList.Where(z => X && z == 1) { }
безумен?
Это, вероятно, менее читаемо, но компилятор оптимизирует его, чтобы сделать его почти таким же кодом?