Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
378 of 1492 menu
◀ ▶

Метод AsReadOnly

Статический метод AsReadOnly класса Array создаёт ReadOnlyCollection<T> поверх переданного массива. Чтение идёт из того же хранилища: изменение исходного массива по индексу видно через обёртку.

Синтаксис

ReadOnlyCollection<T> view = Array.AsReadOnly(array);

Пример

Давайте прочитаем элемент через обёртку:

using System; using System.Collections.ObjectModel; class Program { static void Main() { int[] nums = {1, 2, 3, 4, 5}; ReadOnlyCollection<int> view = Array.AsReadOnly(nums); Console.WriteLine(view[2]); } }

Результат выполнения кода:

3

Пример

Давайте изменим исходный массив и снова прочитаем:

using System; using System.Collections.ObjectModel; class Program { static void Main() { int[] nums = {1, 2, 3, 4, 5}; ReadOnlyCollection<int> view = Array.AsReadOnly(nums); nums[0] = 9; Console.WriteLine(view[0]); } }

Результат выполнения кода:

9

Пример

Давайте выведем число элементов обёртки:

using System; using System.Collections.ObjectModel; class Program { static void Main() { string[] items = {"a", "b", "c", "d", "e"}; ReadOnlyCollection<string> view = Array.AsReadOnly(items); Console.WriteLine(view.Count); } }

Результат выполнения кода:

5

Смотрите также

  • метод Clone,
    который создаёт отдельную копию массива
  • свойство Length,
    которое совпадает с Count обёртки
  • метод GetValue,
    который читает элемент по индексам
  • интерфейс IReadOnlyList<T>,
    который задаёт доступ только для чтения
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить