Conversión de IEnumerable a Lista [duplicado]

Resuelto kartal asked hace 13 años • 5 respuestas

Quiero convertir de IEnumerable<Contact>a List<Contact>. ¿Cómo puedo hacer esto?

kartal avatar Oct 01 '11 09:10 kartal
Aceptado

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 ToListmétodo de extensión.

Ejemplo:

IEnumerable<int> enumerable = Enumerable.Range(1, 300);
List<int> asList = enumerable.ToList();
vcsjones avatar Oct 01 '2011 02:10 vcsjones

En caso de que estés trabajando con un modelo antiguo normal, System.Collections.IEnumerablepuedes IEnumerable<T>usarenumerable.Cast<object>().ToList()

cordialgerm avatar Oct 01 '2011 02:10 cordialgerm

Si está utilizando una implementación de, System.Collections.IEnumerablepuede hacer lo siguiente para convertirla a un archivo List. A continuación se utiliza el método Enumerable.Cast para convertir IEnumerablea 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 IEnumerablees nulo, cuando intentes convertirlo en List, obtendrás el ArgumentNullExceptionmensaje 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 una nullverificación antes de convertirlo a List.

Nipuna avatar Jul 18 '2015 04:07 Nipuna