from item in range where item % 2 ==0 select i ;
extension methods equivelant of it is.
range.where(item % 2 ==0).select(x=>x).
I feel that first way of linq is translating next one by compiler and if it is,so is there any optimization by compiler like this range.where(item & 2 == 0) instead of other one ?