ICollection – Overview
Definição
O .NETFW oferece duas versões de ICollection, a System.Collections.ICollection e a System.Collections.Generic.ICollection T versão genérica para manipular coleções.
A Definição
A definição do tipo ICollection:
public interface ICollection : IEnumerable { int Count { get; } bool IsSynchronized { get; } Object SyncRoot { get; } void CopyTo(Array array, int index); }
Note como o C# implementa esse grupo de coleção.
A ICollection herda de IEnumerable. Então, acessamos todos os membros da IEnumerable implementados em todas as classes que implementam a ICollection.
Para mais detalhes sobre métodos e propriedades. Consulte a documentação da MSDN.
Define o tamanho, os enums, e os métodos de sincronização para todas as coleções não genéricas.
ICollection T
Agora a versão genérica:
public interface ICollection<T> : IEnumerable<T>, IEnumerable { int Count { get; } bool IsReadOnly { get; } void Add(T item); void Clear(); bool Contains(T item); void CopyTo(T[] array, int arrayIndex); bool Remove(T item); }
Note que ela se difere da versão não-genérico.
Ela define métodos para adicionar, remover e limpar uma coleção. A forma da implementação da sincronização também se difere.
Provavelmente, isso ocorreu devido à versão genérica dessa interface ter sido incorporada no. NET 2.0 enquanto que a versão não genérica foi adicionada no NET 1.1.