c# - ¿Qué debo usar un IEnumerable o IList?
(3)
Esta pregunta ya tiene una respuesta aquí:
- IList vs IEnumerable para Colecciones en Entidades 2 respuestas
¿Alguien puede decirme cuándo debo usar cualquiera de las dos?
Por ejemplo, creo que debería usar un IList cuando quiero acceder al .Count de la colección o un elemento individual, ¿correcto?
Gracias.
Debería usar IList cuando necesite acceder por índice a su colección, agregar y eliminar elementos, etc., e IEnumerable cuando solo necesite enumerar sobre su colección.
Una respuesta muy simple, puedo extenderla si describe su situación.
Utiliza IEnumerable cuando quiere recorrer los elementos de una colección.
IList es cuando desea agregar, eliminar y acceder a los contenidos de la lista fuera de orden.
IList vs IEnumerable para Colecciones en Entidades
http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=722
En términos generales, debe intentar usar el tipo menos específico que se adapte a su propósito. IEnumerable
es menos específico que IList
( IList
implementa IEnumerable
), de modo que, a menos que desee algo específico de IList
(como Count
como sugiere, o quizás Add
, Delete
, etc.), usaría IEnumerable
.
Una de las ventajas de permanecer con IEnumerable
es que puede escribir métodos de iterador para devolver este tipo (busque "rendimiento 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.