Estoy tratando de realizar la siguiente conversiónmoldeada recibido objeto a una lista de <object> o IEnumerable <object>
private void MyMethod(object myObject)
{
if(myObject is IEnumerable)
{
List<object> collection = (List<object>)myObject;
... do something
}
else
{
... do something
}
}
Pero siempre terminan con la siguiente excepction:
No se puede convertir objeto de tipo ' System.Collections.Generic.List 1[MySpecificType]' to type 'System.Collections.Generic.List
1 [System.Object] '
Realmente necesito que esto funcione, porque este método debe ser muy genérico para recibir objetos individuales y colecciones de tipos no especificados.
Esto es posible, o hay otra forma de lograr esto.
Gracias.
Gracias. Esto lo hizo. –
@Sergio, debe comprobar que myObject implementa IList en lugar de IEnumerable antes de la conversión si desea evitar el riesgo de errores de tiempo de ejecución. Muchas colecciones incorporadas implementan IEnumerable pero no IList (por ejemplo, Dictionary <>, HashSet <>, Hashtable, Queue, Stack, etc.). – LukeH
@Luke: si es una lista (que está implícita en la pregunta), implementará IList. –
erikkallen