pipeline_peak parent
….All these years and I’ve never known about Anonymous types. I know about records and dynamic objects. I’m guessing they aren’t used often because I have yet to find them.
LINQ GroupBy() is the most common use I can think of. I would definitely look into that as it's a nice tool to have. Otherwise, keep them in mind if you're ever pulling data from an external source (SQL, JSON, GQL, Redis, etc) and you're annoyed about having to make a class for some trivial operation.
If a library doesn't have an API for using them with generics, you can paper over that with:
T fn<T>(T throwAway) => Library.Deserialize<T>();Another example of Anonymous types would be a simple .Select(x=> new {x.ID, x.Name});
Sometimes people lump these in with dynamic objects but those are a very different class of thing indeed.
Now, what would be -really- nice is if we had a way to specify that an anonymous type implements an interface. That could potentially simplify a -lot- of DTO modeling.