Reflection does away the need to manually implement serializers. In a growing codebase where data models transform and references to those models begin to rot, that is incredibly useful.
There are anonymous types for intermediate results in the linq stream. And since they are anonymous types you need the c
var keyword when working with the outcome.