Saltar al contenido

Conversión de IEnumerable a List

Solución:

Puede hacer esto de manera muy simple usando LINQ.

Asegúrese de que este uso esté en la parte superior de su archivo C #:

using System.Linq;

Entonces usa el ToList método de extensión.

Ejemplo:

IEnumerable<int> enumerable = Enumerable.Range(1, 300);
List<int> asList = enumerable.ToList();

En caso de que esté trabajando con un viejo System.Collections.IEnumerable en lugar de IEnumerable<T> puedes usar enumerable.Cast<object>().ToList()

Si está utilizando una implementación de System.Collections.IEnumerable puedes hacer como seguir para convertirlo en un List. Lo siguiente usa el método Enumerable.Cast para convertir IEnumberable a un genérico List.

//ArrayList Implements IEnumerable interface
ArrayList _provinces = new System.Collections.ArrayList();
_provinces.Add("Western");
_provinces.Add("Eastern");

List<string> provinces = _provinces.Cast<string>().ToList();

Si está usando la versión genérica IEnumerable<T>, La conversión es sencilla. Dado que ambos son genéricos, puede hacer lo siguiente:

IEnumerable<int> values = Enumerable.Range(1, 10);
List<int> valueList = values.ToList();

Pero si el IEnumerable es nulo, cuando intentas convertirlo en un List, obtendrás
ArgumentNullException diciendo que el valor no puede ser nulo.

IEnumerable<int> values2 = null;
List<int> valueList2 = values2.ToList();

ingrese la descripción de la imagen aquí

Por lo tanto, como se menciona en la otra respuesta, recuerde hacer un null comprobar antes de convertirlo en un List.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *