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

Интерфейс IReadOnlyCollection

Интерфейс IReadOnlyCollection<T> наследует IEnumerable<T> и добавляет свойство Count без методов изменения.

Синтаксис

int Count { get; }

Пример

Давайте передать список как IReadOnlyCollection:

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

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

5

Пример

Давайте обойдём коллекцию:

using System; using System.Collections.Generic; class Program { static void Main() { List<int> nums = new List<int> {1, 2, 3, 4, 5}; IReadOnlyCollection<int> col = nums; foreach (int x in col) { Console.Write(x + " "); } } }

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

1 2 3 4 5

Пример

Давайте использовать AsReadOnly:

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

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

5

Пример

Давайте работать со строками:

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

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

5

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

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