title: When to force LINQ query evaluation?
body: <p>What's the accepted practice on forcing evaluation of LINQ queries with methods like <code>ToArray()</code> and are there general heuristics for composing optimal chains of queries? I often try to do everything in a single pass because I've noticed in those instances that <code>AsParallel()</code> does a really good job in speeding up the computation. In cases where the queries perform computations with no side-effects but several passes are required to get the right data out is forcing the computation with <code>ToArray()</code> the right way to go or is it better to leave the query in lazy form?</p>