Интерфейс 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,
который создаёт обёртку только чтения