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

Класс ReadOnlyCollection

Класс ReadOnlyCollection<T> оборачивает IList<T> и запрещает изменение структуры, но может отражать правки исходного списка.

Синтаксис

ReadOnlyCollection<T> view = new ReadOnlyCollection<T>(list);

Пример

Давайте создадим обёртку через AsReadOnly:

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

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

3

Пример

Давайте выведем Count:

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

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

5

Пример

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

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

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

9

Пример

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

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

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

"a"

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

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