Duplicar posible:
What's the difference between IEnumerable and Array, IList and List?¿Cuál es la diferencia entre List <string> e IEnumerable <String>?
¿Cuál es la diferencia entre los dos anteriores?
Duplicar posible:
What's the difference between IEnumerable and Array, IList and List?¿Cuál es la diferencia entre List <string> e IEnumerable <String>?
¿Cuál es la diferencia entre los dos anteriores?
Un List<string>
es una aplicación concreta de IEnumerable<string>
. La diferencia es que IEnumerable<string>
es simplemente una secuencia de string
pero un List<string>
es indexable por un índice int
, se puede agregar y eliminar y tener elementos insertados en un índice en particular.
Básicamente, la interfaz IEnumerable<string>
le permite transmitir el string
en la secuencia pero List<string>
le permite hacer esto, así como modificar y acceder a los elementos en las listas de maneras específicas. Un IEnumerable<string>
es una secuencia general de string
que puede iterarse pero no permite el acceso aleatorio. A List<string>
es una colección específica de tamaño variable de acceso aleatorio.
Esta respuesta fue más útil que las de http://stackoverflow.com/questions/764748/whats-the-difference-between-ienumerable-and-array-ilist-and-list – JYelton
¿Qué significa una implementación concreta? ¿Significa que una lista hereda de ienumerable? – user1534664
@ user1534664: No. Significa que hereda de 'IEnumerable' * y * no es abstracto, de hecho es construible. – jason
IEnumerable<T>
es una interfaz. Debe ser implementado.
List<T>
es una implementación de IEnumerable<T>
Uno es una interfaz: http://msdn.microsoft.com/en-us/library/9eekhta0.aspx
La otra es una clase que implementa la interfaz: http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx
Además, la lista es una matriz que crece cuando le agrega elementos, mientras que IEnumerable permite que los implementadores se usen en un foreach.
El primero es un hormigón List
de cadenas, el otro es cualquier clase que implementa IEnumerable<string>
diferente.
IEnumerable le permite iterar a través de la colección utilizando un bucle for-each.
e IEnumerable solo tiene el método GetEnumerator.
Y lista implementar muchas interfaces como IEnumerable, Ilist, etc. Tantos funcionan en la lista.
En rendimiento IEnumerable más rápido que List.
http://stackoverflow.com/questions/764748/whats-the-difference-between-ienumerable-and-array-ilist-and-list – timothyclifford