В .net контейнеры (даже массивы) обрабатывают весь доступ к ним.Вы не используете указатели для работы с ними (за исключением крайне редких случаев, в которые вы, вероятно, никогда не попадете), поэтому часто не имеет значения, как они хранят информацию.Во многих случаях даже не указано, как все работает за кулисами, поэтому реализация может быть изменена на что-то «лучшее», не ломая вещи, которые по какой-то глупой причине опираются на эти детали.
Последнее, что я слышал, хотя, массивы хранят свои записи последовательно - с оговоркой, что для объектов ссылочного типа (все, что не является структурой), «записи» являются ссылками, а не самими объектами.Данные могут быть где угодно в памяти.Думайте об этом больше как о массиве ссылок, чем о массиве объектов.
ArrayLists, основанные на массивах, должны хранить свои вещи таким же образом.