diferencia - ienumerable to list c#
Diferencia práctica entre Lista e IEnumerable (2)
Esta pregunta ya tiene una respuesta aquí:
- IEnumerable vs List - ¿Qué debo usar? ¿Cómo trabajan? 9 respuestas
Al leer publicaciones similares, he aprendido que una Lista es un tipo de IEnumerable. Pero realmente me pregunto cuál es la diferencia práctica entre esos dos en realidad.
Para alguien que siempre ha usado una Lista y nunca usó IEnumerable:
- ¿Cuál es la diferencia práctica entre los dos?
- ¿En qué escenarios es uno de ellos mejor que el otro?
Este es un ejemplo práctico : queremos almacenar cuatro cadenas, ordenarlas alfabéticamente, pasarlas a otra función y luego mostrarle al usuario el resultado. ¿Qué usaríamos y por qué?
Esperemos que alguien pueda arreglar esto por mí o señalarme la dirección correcta. ¡Gracias por adelantado!
Muchos tipos distintos a List implementan IEnumerable como un ArrayList. Entonces, una ventaja es que puede pasar diferentes tipos de colección a la misma función.
Una diferencia importante entre IEnumerable y List (además de que uno es una interfaz y el otro es una clase concreta) es que IEnumerable es de solo lectura y List no.
Entonces, si necesita la capacidad de realizar cambios permanentes de cualquier tipo en su colección (agregar y eliminar), necesitará la Lista. Si solo necesita leer, ordenar y / o filtrar su colección, IEnumerable es suficiente para ese propósito.
Entonces, en tu ejemplo práctico, si quisieras agregar las cuatro cadenas una a la vez, necesitarías una lista. Pero si estuviera creando una instancia de su colección de una vez, podría usar IEnumerable.
IEnumerable firstFourLettersOfAlphabet = new[]{"a","b","c","d"};
Luego, puede usar LINQ para filtrar u ordenar la lista como lo desee.