ICollection\<T> — это обобщенный интерфейс в C#, который определяет общие функции для работы с коллекциями данных. ICollection\<T> реализуется большинством классов коллекций в .NET, включая List\<T>, HashSet\<T>, Dictionary\<TKey, TValue> и др.
ICollection\<T> наследуется от IEnumerable\<T> и добавляет методы и свойства, которые позволяют:
* Получить число элементов в коллекции (Count).
* Добавить элемент в коллекцию (Add).
* Определить, содержится ли элемент в коллекции (Contains).
* Удалить элемент из коллекции (Remove).
* Удалить все элементы из коллекции (Clear).
* Скопировать элементы коллекции в массив (CopyTo).
* Узнать, является ли коллекция только для чтения (IsReadOnly).
Обратите внимание, что некоторые коллекции, например HashSet\<T> и Dictionary\<TKey, TValue>, реализуют ICollection\<T> по-своему. В HashSet\<T>, например, метод Add возвращает значение bool, которое показывает, был ли элемент успешно добавлен или нет (то есть, не было ли такого элемента уже в коллекции).