Призначення класу Array — базовий клас для всіх масивів у середовищі CLR, що надає методи для створення, зміни, пошуку та упорядкування масивів.
Загальне уявлення про створення представника класу Array можна отримати, переглянувши код програми та проаналізувавши її виведенням.
У поданому далі описі:
Зауваження
Клас Array не є частиною простору назв System.Collections. Однак його вважають колекцією, бо він ґрунтується на інтерфейсі IList.
Клас Array є базовим класом для втілення мов, що підтримують масиви. Однак лише система та компілятори можуть явно успадковувати від класу Array. Користувачі повинні використовувати конструкції масивів, надані мовою програмування.
Нижня межа Array — це індекс його першого елемента. Array може мати будь-яку нижню межу, але як усталено нижня межа дорівнює нулю. При створенні екземпляра класу за допомогою CreateInstance можна визначити іншу нижню межу Array. Багатовимірний об'єкт Array може мати різні межі для кожного вимірювання. Масив може мати трохи більше 32 вимірів.
На відміну від класів у просторі імен System.Collections, Array має фіксовану ємність. Щоб збільшити ємність, необхідно створити новий об'єкт Array з необхідною ємністю, скопіювати елементи зі старого об'єкта Array в новий, а потім видалити старий Array.
Розмір масиву обмежений максимальною кількістю елементів — 4 мільярди, а також максимальним індексом 0X7FEFFFFF у будь-якому заданому вимірі.
.NET framework: як усталено максимальний розмір Array складає 2 гігабайти (ГБ). У 64-розрядному середовищі можна уникнути обмеження розміру, встановивши значення атрибута enabled елемента конфігурації gcAllowVeryLargeObjects рівним true в середовищі виконання.
Одновимірні масиви втілюють універсальні інтерфейси
System.Collections.Generic.IList<T>,
System.Collections.Generic.ICollection<T>,
System.Collections.Generic.IEnumerable<T>,
System.Collections.Generic.IReadOnlyList<T>,
System .Collections.Generic.IReadOnlyCollection<T>.
Втілення надано масивам лише під час виконання програм, тому універсальні інтерфейси не відображено в синтаксисі оголошення класу Array. Ключовий момент, який необхідно враховувати при зведенні масиву до одного з цих інтерфейсів, полягає в тому, що члени, які додають, вставляють або видаляють елементи, викликають виняток NotSupportedException.
Об'єкти Type надають відомості про оголошення типів масивів. Об'єкти Array з тим самим типом масиву мають однакові об'єкти Type.
Type.IsArray і Type.GetElementType можуть не повертати очікувані результати з Array, тому що при зведенні масиву до типу Array результат — це об'єкт, який не є масивом. Тобто typeof(System.Array).IsArray повертає false, а typeof(System.Array).GetElementType повертає null.
Метод Copy копіює елементи між масивами одного типу. Або різних типів при автоматичному зведенні типів.
Деякі методи, наприклад CreateInstance, Copy, CopyTo, GetValue та SetValue, надають перевантаження, що приймають 64-розрядні цілі числа як параметри, для забезпечення можливості роботи з масивами великої ємності. LongLength та GetLongLength повертають 64-розрядні цілі числа, що вказують довжину масиву.
Сортування Array не гарантується. Перед виконанням операцій, які потребують сортування Array (наприклад, BinarySearch), Array потрібно попередньо відсортувати.
Використання об'єктів покажчиків Array у машинному коді не підтримано і викликає виняток NotSupportedException для деяких методів.
Методи
Додаткові дані про явні втілення інтерфейсу, методи розширення потоко-безпечність подано на сторінці сайту learn.microsoft.com.