No, but kind of. The Office365Message array is not an exact type match for MailMessage array (Office365Message <> MailMessage). Due to inheritance, Office365Message is a child class of MailMessage and can be type casted as a MailMessage, and then manipulated as a MailMessage. By type casting the Office365Message Object into a MailMessage Object, it effectively becomes a MailMessage Object in the eyes of the .NET Framework.
Explanation of your findings:
emailReadResult is an array of Office365Message messages.
Your For Each loop is type casting the email messages from Office365Message Objects to MailMessage Objects via the TypeArgument Misc value selected in the Properties pane.
You are essentially performing this action by selecting MailMessage in the For Each loop TypeArgument (instead of Office365Message):
The Office365Message class inherits the System.Net.Mail.MailMessage class, which means the Office365Message class inherits all of the same constructors, methods, and properties as MailMessage plus it has the constructors, methods, and properties that it owns as well. The biggest usage difference between the Office365Message class and the MailMessage class is that the Office365Message content is derived from the Microsoft.Graph.Message, allowing Office365Message Objects to have more robust features and functionality in relation to the Microsoft Graph Gateway.
C# Inheritance Tutorial