Category Archives: Collections

A Magia das Interfaces

Overview – IList

Definição

O .NETFW oferece duas versões de IList, a não genérica System.Collections.IList e a System.Collections.Generic.ICollection T versão genérica para manipular coleções.

A Definição

A definição do tipo IList não genérico:

public interface IList : ICollection, IEnumerable
{
    bool IsFixedSize { get; }
    bool IsReadOnly { get; }
    Object this[int index] { get; set; }
 
    int Add(Object value);
    void Clear();
    bool Contains(Object value);
    int IndexOf(Object value);
    void Insert(int index, Object value);
    void Remove(Object value);
    void RemoveAt(int index);
}

Veja que IList implementa ICollection e IEnumerable. Além disso, expõe métodos de coleção para adicionar, remover, limpar e posicionar os elementos dentro do conjunto.

Ela também expõe um indexador de objetos que permite acessar a coleção com []:

lista[index].propriedades 

ou genérica:

lista[index]

IList Generica

Agora a versão generica de IList:

public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
{
    T this[int index] { get; set; }
 
    int IndexOf(T item);
    void Insert(int index, T item);
    void RemoveAt(int index);
}

A ICollection T, possui mais métodos definidos na ICollection T do que na ICollection.

Ou seja, temos uma lista de membros da IList menor que o equivalente não genérica. Então temos métodos novos para acessar uma coleção com posicionamento específico.