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

Метод AsReadOnly

Метод AsReadOnly класса List<T> возвращает ReadOnlyCollection<T>, который запрещает добавление и удаление, но отражает изменения исходного списка.

Синтаксис

ReadOnlyCollection<T> view = list.AsReadOnly();

Пример

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

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

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

3

Пример

Давайте изменим исходный список и увидим это в обёртке:

using System; using System.Collections.Generic; class Program { static void Main() { List<int> nums = new List<int> {1, 2, 3, 4, 5}; var view = nums.AsReadOnly(); nums[0] = 10; Console.WriteLine(view[0]); } }

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

10

Пример

Давайте выведем Count обёртки:

using System; using System.Collections.Generic; class Program { static void Main() { List<int> nums = new List<int> {1, 2, 3, 4, 5}; var view = nums.AsReadOnly(); Console.WriteLine(view.Count); } }

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

5

Пример

Давайте обойдём обёртку в foreach:

using System; using System.Collections.Generic; class Program { static void Main() { List<string> items = new List<string> {"a", "b", "c", "d", "e"}; var view = items.AsReadOnly(); Console.WriteLine(view[4]); } }

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

"e"

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

  • класс ReadOnlyCollection,
    который представляет обёртку списка
  • интерфейс IReadOnlyList,
    который описывает список только для чтения
  • интерфейс IReadOnlyCollection,
    который описывает набор только для чтения
  • метод ToArray,
    который копирует данные в массив
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить