none
ICollection ou List RRS feed

  • Pergunta

  • Olá a todos!

    No livro Code First da Julia Lerman, é usado com muita frequência List<T>.

    No artigo da MSDN Code First no ADO.NET Entity Framework 4.1, do Rowan Miller já é utilizado com muita frequência a interface ICollection<T>.

    Devo optar por qual? E porque?

    Lets


    terça-feira, 12 de março de 2013 00:31

Respostas

Todas as Respostas

  • Cara, Primeiro precisa saber a diferença entre os dois.

    http://msdn.microsoft.com/pt-br/library/system.collections.icollection.aspx

    http://msdn.microsoft.com/pt-br/library/vstudio/6sh2ey19.aspx

    Exemplos:

    http://www.macoratti.net/11/11/c_intf1.htm

    http://msdn.microsoft.com/en-us/library/vstudio/ms173156.aspx

    http://msdn.microsoft.com/pt-br/library/vstudio/87d83y5b.aspx

    O List implementa a interface ICollection ou seja um método com retorno List só pode retornar um List. Porém se fizer um método que tenha um retorno ICollection você pode retornar tudo que implementa essa interface como por exemplo(Lis, Array e etc...)


    Atenciosamente,

    Samuel dos Anjos


    terça-feira, 12 de março de 2013 00:48
  • Oi Samuel, gostei da resposta.

    Para o que eu quero List<> vai muito bem pois:

    1. Uma turma possui diversos alunos;
    2. Uma empresa emprega vários funcionários;
    3. Um pedido é composto por vários itens;
    4. Um país tem muitos estados da federação.
    5. .........

    Entretanto, caso não haja problemas com a performance, usar ICollection<> fica mais elegante e flexível.

    Por favor, valide este comentário.

    Valeu e muito.

    Lets

    terça-feira, 12 de março de 2013 01:23
  • Oi Samuel, gostei da resposta.

    Para o que eu quero List<> vai muito bem pois:

    1. Uma turma possui diversos alunos;
    2. Uma empresa emprega vários funcionários;
    3. Um pedido é composto por vários itens;
    4. Um país tem muitos estados da federação.
    5. .........

    Entretanto, caso não haja problemas com a performance, usar ICollection<> fica mais elegante e flexível.

    Por favor, valide este comentário.

    Valeu e muito.

    Lets

    Para complementar, dê uma olhada aqui: http://stackoverflow.com/questions/4455428/difference-between-iqueryable-icollection-ilist-idictionary-interface

    Seguinte, você perguntou de performance, e segundo essa discussão no fórum do asp.net (nunca entendi tanto fóruns separados) IList é mais performático, um dos motivos é a auto indexação.


    Microsoft Communit Contributor
    Twitter: @MayogaX
    Blog: Dev Blog

    • Marcado como Resposta Lets Carvalho terça-feira, 12 de março de 2013 14:02
    terça-feira, 12 de março de 2013 12:09