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

Интерфейс IReadOnlyList

Интерфейс IReadOnlyList<T> расширяет IReadOnlyCollection<T> индексатором только для чтения.

Синтаксис

T this[int index] { get; }

Пример

Давайте прочитаем элемент по индексу:

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

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

4

Пример

Давайте использовать обёртку AsReadOnly:

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

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

1

Пример

Давайте увидеть изменение исходного списка:

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

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

9

Пример

Давайте прочитаем Count:

using System; using System.Collections.Generic; class Program { static void Main() { List<string> items = new List<string> {"a", "b", "c", "d", "e"}; IReadOnlyList<string> list = items; Console.WriteLine(list.Count); } }

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

5

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

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