Notice how the Intellisense gives us the exact same options that are available to us if/when we were to create an explicit int array. Notice the snippet below shows an explicit int array and the Intellisense for that int array:
Notice the .Dump of the Anonymous Type is now an array of Person. In other words, the Anonymous Type is now Person type! How does it do that?
According to Mads Torgersen, this magic inference is called “Cast-By-Example”. [ref]
Notice the Intellisense gives us options that correspond to the Intellisense for List types.