score:1

Accepted answer

Both codes will return the same results. Both have deferred execution (i.e. nothing will actually be executed until you start enumerating the result) and stream the results (i.e. not buffered). There shouldn't be a significant performance difference between the two versions

score:2

It's definitely functionally identical (although I've assumed that the lack of a new keyword in your LINQ example was a typo).

There's a bit of null checking in Select, but that's unlikely to significantly affect performance.

Jon Skeet has a good writeup on his blog here: http://msmvps.com/blogs/jon_skeet/archive/2010/12/23/reimplementing-linq-to-objects-part-3-quot-select-quot-and-a-rename.aspx


Related Articles