I can do:
var something = things.Where(thing => thing.stuff == yup);
var somethingelse = something.Select(thing => thing.otherstuff);
or
var something = from thing in things
where thing.stuff == yup
select thing;
var somethingelse = from thing in something
select thing.otherstuff;
Obviously if this were real world there's the benefit with the keyword version of doing:
var somethingelse = from thing in something
where thing.stuff == yup
select thing.otherstuff;
But then of course you could argue that you could do:
var somethingelse = things.Where(thing => thing.stuff == yup)
.Select(thing => thing.otherstuff);
Anyway the question itself: what are the pros/cons to using each of these variants? Are they identical but just different syntax code-side? If you combine two method versions (i.e., where/select as above) is it less efficient than using the keyword syntax combining both into one line?
I love LINQ and I don't want to lose any efficiency where some could be gained by using one type or another.