I'd like to be sure that LET is lazy evaluated in LINQ. It means, that even when LINQ query is actually evaluated, LET clauses, which are not used due to circumstances of conditions, are not evaluated. So my question is not about deferred execution of LINQ queries, but about particular part of query.
Obviously, I cat write a query like this and see that LET is lazy evaluated:
Dim dd = From x In {0, 1, 2, 3} Let y = 1 / x, z = If(True, x + 2, y) Select z
But my experience show that sometimes a logic of VB is not constant, so you can see one behavior in test example, and another in real life (e.g. it happens for "and" and "or").
So I'd like to know that for sure. I didn't find any mention of that particular problem in the docs.