J'ai un tableau d'objets et je souhaite le convertir en un tableau de types spécifique. J'ai le type pour le convertir dans lequel je reçois à l'exécution. Mais j'ai un problème en faisant la conversion réelle.Convertir un tableau d'objets en un autre tableau de types à l'aide de Reflection
Si je le Convert.ChangeType, je reçois l'erreur que l'objet doit mettre en œuvre IConvertible
Le Array.ConvertAll est modèle basé et exige que je passe le type de destination en tant que modèle que je ne sais au moment de l'exécution . J'ai même essayé d'utiliser la réflexion pour appeler cette méthode mais je ne peux pas passer l'expression lambda comme argument à la méthode MethodInfo.Invoke.
Des idées?
droite je donne les résultats suivants qui ne fonctionne pas:
Type convertTo = GetFinalType();
Object[] objArr = GetObjectArray();
var arr = Array.ConvertAll(objArr,elem=> Convert.ChangeType(elem,convertTo));
Comment est-ce Une exception est-elle levée? –
@Mark: * "J'obtiens l'erreur que l'objet doit implémenter IConvertible" * – cdhowie
La ligne var arr = Array.ConvertAll (objArr, elem => Convert.ChangeType (elem, convertTo)); ne compile pas car il a besoin du type cible en tant que modèle, par exemple Array.ConvertAll (objArr, elem => Convert.ChangeType (elem, convertTo)); .. Je n'ai que T2 à l'exécution –
shake