emaster70, Deferred even even.Contains. limit.
Immediate , all :
var all = Range(limit).ToArray();
.
Contains - O (n), . , Contains.
, HashSet , Contains O (1).
a limit 10000 100 , Immediate:
public void Joined() {
var all = Range(limit);
var even = from e in EvenRange(limit) join a in all on e equals a select e;
var evenSet = new HashSet<int>(even);
var odd = from o in OddRange(limit) where !evenSet.Contains(o) select o;
var query = from q in odd select q;
foreach (var i in query) { var j = i + 1; }
}