Earlier quoted context omitted.
Regarding the let keyword; the following code: var x = from post in posts let keywords = post.split(' ') ... Is compiled* into: var x = posts .Select(post => new { keywords = post.split(' '), post }) ... * If you didn't know already, the compiler transforms query syntax into extension method syntax.
Oh yes, I did actually realise that. Thank you though. I worded it badly. I should have been clearer in that I was following on from solutionyogi's argument about readability. The compiler example is a bit on the ugly side, wouldn't you say? To then access 'keywords', it becomes ... .Where(anon => anon.keywords[0] == "verybadexample") .Select(anon => anon.post); What I should have said was that I'm not sure how you w…
var thing =
from x in stuff
let derp = x.herp
select { x.name }
Equals this: var thing = stuff.Select( x => {
var derp = x.herp;
return new { x.name };
} );
edit: formatting.I think each have their place, but this absolutely enrages me:
var things = ( from x in thingList select x ).ToList()