Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

IList ou ICollection

Em um curso o instrutor usa IList para criar a lista em uma entidade.

Em outro usa ICollection.

Alguma diferença em potencial ao usar um ou outro na modelagem?

Notei que mesmo quem usa ICollection ao criar o atributo, a instancia com new List.

1 resposta
solução!

Olá Jaqueline, tudo bem?

Não manjo muito de C#, mas essa questão tem mais a ver com O.O do que com a linguagem em si.

Fui dar uma olhada na documentação e vi que IList é uma implementação de ICollection. A diferença entre uma ou outra é somente em termos de Abstração e Polimorfismo.

Por exemplo você pode ter as seguintes declarações:

ICollection collection = new List ...

ou 

ICollection collection = new Hashtable ...

Obs: Caso eu tenha cometido algum erro de sintax me perdoe estou levando em consideração o que você tinha escrito e alguns exemplos que eu vi. =/

Se eu não digitei nada errado, ambas as declarações são válidas, pois estamos usando um tipo mais genérico.

O problema disso é que como estou atribuindo tanto um quanto o outro para ICollection só poderei usar os métodos de ICollection. Para usar método específicos de List ou de Hashtable terei que fazer um cast.

A grande vantagem nisso é que posso trocar a implementação por qualquer um que implemente ICollection.

Se eu usar IList só posso usar implementações de IList como ArrayList, LinkedList .

Espero ter ajudado, e bons estudos.