IMO, Microsoft got it right way back when with LINQ syntax. They did it for a different reason (to make things easier to convert to a sequence of plain, old fashioned method invocations), but the idea was the right one. For those who don&#x27;t know, in a LINQ query you first specify the data source(s) and joins, then your filtering logic, then grouping and ordering, and then your projections, including projections into objects and anonymous structs. That&#x27;s just the way it oughtta have been from the start. As a bonus, it also simplifies things like autocomplete, because you know the data sources up front.