I believe this is for performance reasons. The structure array is a garbage collector friend, not a class array.
Out of 5 Tips and Techniques to Prevent GC Auto Build
With an array of class instances, the GC must check each element in this array to see if it is a living object or not (the same is true for general collections that use an internal array). With an array of structs, GC just looks to see if the array itself will still live, since the structs cannot be null (this is even true for Incorrect structures that simply use an internal tracking mechanism to determine invalid). So these are potentially thousands or even millions of elements that the GC does not need to check when starting the collection!
Sriram sakthivel
source share