Esto es un poco difícil de explicar. Entonces aquí va.¿Cómo puedo enumerar a través de un objeto de tipo `T` cuando es un IEnumerable
que tienen una función como esta:
public T FooBar<T>(Func<T> function)
{
T returnData = function();
// want to iterate through returnData to do something to it
return returnData;
}
Si el returnData
(t) es una lista IEnumerable
, a continuación, me gustaría enumerar returnData
modificar su contenido utilizando la reflexión. Pero parece que no puedo hacerlo. Cuando trato de echar returnData
a un tipo enumerable, consigo una excepción:
No se puede convertir objeto de tipo
'System.Collections.Generic.List`1 [Coches]'
para escribir
'System.Collections.Generic.List`1 [System.Object]'.
No sabré que el tipo de devolución será una lista de 'automóviles', por ejemplo, con anticipación, solo en tiempo de ejecución. Así que tengo que verificar utilizando el reflejo si se trata de una lista, y luego tratar de lanzarlo para que pueda enumerar a través de él.
A menos que lo esté haciendo de la manera incorrecta. ¿Cómo puedo enumerar a través del returnData
si es del tipo T
?
No he pensado en la idea de la sobrecarga. Voy a intentar esto. – 7wp