¿Alguien puede decirme cuándo debo usar cualquiera de los dos?¿Qué debo usar un IEnumerable o IList?
Por ejemplo, creo que debería usar un IList cuando quiero acceder al .Count de la colección o un elemento individual, ¿correcto?
Gracias.
¿Alguien puede decirme cuándo debo usar cualquiera de los dos?¿Qué debo usar un IEnumerable o IList?
Por ejemplo, creo que debería usar un IList cuando quiero acceder al .Count de la colección o un elemento individual, ¿correcto?
Gracias.
En general, usted debe tratar de utilizar el tipo menos específico que se adapte a su propósito. IEnumerable es menos específico que IList (IList implementa IEnumerable) así que a menos que desee algo específico de IList (como .Count como sugiere, o tal vez Agregar, Eliminar, etc.), usaría IEnumerable.
Una de las bonitas adiciones que obtiene de su permanencia en IEnumerable es que puede escribir métodos de iterador para devolver este tipo (busque "retorno de rendimiento" y métodos de iterador si no está familiarizado con ellos). Esto le permite escribir "tuberías" muy eficientes en memoria para sus bucles.
Utiliza IEnumerable cuando desea recorrer los elementos de una colección.
IList es cuando desea agregar, eliminar y acceder a los contenidos de la lista fuera de servicio.
IList vs IEnumerable for Collections on Entities
http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=722
usted debe utilizar IList cuando se necesita el acceso de índice para su colección, añadir y eliminar elementos, etc., y IEnumerable cuando se necesita simplemente enumerar más de su colección.
Una respuesta muy simple, puedo extenderla si usted describe su situación.
Estoy de acuerdo con el uso del tipo menos derivado. ICollection <> es suficiente para agregar/eliminar. –
@Mark H - buen punto - para la mayoría de las operaciones de agregar/eliminar, incluso IList es innecesariamente específico. –
IList * implementa * IEnumerable ?! –