For the section titled "LINQ? Return expressions, not results", the query returns an 'Iterator'/'Query' and not an 'Expression Tree'. They are completely different things. The underlying point is valid that it makes sense to return the query so that the caller can do perform additional filtering/grouping, if needed.<p>Also, it's great idea to convert query results to List instead of an array. See Eric Lippert's blog on 'Arrays Considered Harmful.' <a href="http://blogs.msdn.com/ericlippert/archive/2008/09/22/arrays-considered-somewhat-harmful.aspx" rel="nofollow">http://blogs.msdn.com/ericlippert/archive/2008/09/22/arrays-...</a><p>Section: Immutable strings? Use String.Format() and StringBuilder<p>For the given example, practically, there is no difference in performance for two code samples. I hate micro optimizations. Use the version which makes the code easier to read.<p>I take serious objection to the tip - 'Minimize the number of variables'. Code readability/maintainability is much more important so use as many variables as you need. Only after you have profiled the code and found that using 3 variables instead of 5 variables gives you performance boost (which I doubt will ever happen), remove those extra variables.