J'ai un tableau d'objets (object[]
). Tous les éléments de ce tableau ont le même type (inconnu à la compilation). J'ai besoin de convertir ce tableau dans un tableau typé, c'est-à-dire, si les éléments sont des entiers, je veux obtenir un int[]
.Unboxing automatique
J'ai examiné la méthode Array.ConvertAll
, mais j'ai besoin de spécifier un type spécifique dans le modèle, ce qui signifie que je dois obtenir le type d'élément, puis appeler ConvertAll
pour chaque cas possible.
J'ai également examiné le mot-clé dynamic
sans plus de chance (ressemble à dynamic[]
est le même que object[]
).
Comment puis-je y parvenir?
Pourquoi faire tu veux faire ça? Comment allez-vous utiliser le tableau résultant? Est-ce que cela doit vraiment être un type d'exécution (objet 'Type'), ou est-ce que les génériques (paramètre de type' T') sont également acceptables? – svick
Juste intéressant - après la conversion d'exécution 'object []' à int [] ', que ferez-vous lors de l'exécution de votre collection? Au moment de la compilation, vous ne pourrez pas utiliser vos objets comme 'int's –
J'utilise une bibliothèque avec une méthode comme' theMethod (object array) 'où array doit être un tableau d'un type donné (une erreur est retournée dans le cas de 'object []'). – gregseth