Most performance considerations are likely to be in terms of the generated SQL - and this should not change here. (Of course, you can check, but I would stagger if that mattered.)
It takes a little more effort to create an instance of an anonymous type, and not, of course. I see no reason why using an anonymous type would improve its performance - I expect it to act very little, but it's not really noticeable.
More importantly, I do not see how the latter adds anything but an unnecessary additional layer of indirection. This will make your code slightly less clear without any benefit. Anonymous types are great when you want to combine individual values - or query only a subset of columns in a table, but anonymous types with one property are rarely useful.
Jon skeet
source share