Conversión de IEnumerable a Lista [duplicado]
Quiero convertir de IEnumerable<Contact>
a List<Contact>
. ¿Cómo puedo hacer esto?
Puedes 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;
Luego use 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és trabajando con un modelo antiguo normal, System.Collections.IEnumerable
puedes IEnumerable<T>
usarenumerable.Cast<object>().ToList()
Si está utilizando una implementación de, System.Collections.IEnumerable
puede hacer lo siguiente para convertirla a un archivo List
. A continuación se utiliza el método Enumerable.Cast para convertir IEnumerable
a 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á utilizando la versión genérica IEnumerable<T>
, la conversión es sencilla. Dado que ambos son genéricos, puedes hacer lo siguiente:
IEnumerable<int> values = Enumerable.Range(1, 10);
List<int> valueList = values.ToList();
Pero si IEnumerable
es nulo, cuando intentes convertirlo en List
, obtendrás el ArgumentNullException
mensaje El valor no puede ser nulo.
IEnumerable<int> values2 = null;
List<int> valueList2 = values2.ToList();
Por lo tanto, como se menciona en la otra respuesta , recuerde hacer una null
verificación antes de convertirlo a List
.