Diferença entre ienumerable e list

IEnumerable é uma interface. "Define" o comportamento. Por outro lado, List é uma classe que é uma implementação desse comportamento.

Por exemplo, desde

Consulta Integrada ao Idioma

faz

não

gere o SQL para consultar o banco de dados até que você o enumere, usando IEnumerable fornece a execução adiada, que é otimizada. (Vejo:

Avaliação preguiçosa

)

public IEnumerable MyMethod (IEnumerable param){ retornar de m em param onde m.MyProperty == "Soner" selecione m;}

Nesse caso, seu filtro só funciona quando você o enumera usando foreach ou chamando o método .ToList (). Uma última coisa, IEnumreable é somente leitura, mas List não.

Leitura adicional:

  • Interface IEnumerable (System.Collections)
  • Classe de lista (System.Collections.Generic)
  • LINQ e execução adiada