Comment puis-je convertir type Anonyme à Ttype?
Comment puis-je utiliser Cast() Extension de la méthode ci-dessus pour la conversion?
par exemple
var aType = anonymousType;
IEnumreable<MyType> = aType.Cast();
Résolu Par
aType.Select(i => new MyType { } ).ToList();
- Pourquoi avez-vous besoin de faire cela? Je ne suis pas tout à fait sûr de votre but. Toute requête LINQ devraient retourner un IEnumerable<T> objet, même en utilisant des types anonymes.
- Remarque: La .ToList() n'est nécessaire que si vous souhaitez que le résultat d'une liste (c'est à dire toutes les conversions, fait à la fois) au lieu d'un agent recenseur qui fait la conversion à la volée.
Vous devez vous connecter pour publier un commentaire.
Le seul type que vous pouvez jeter un type anonyme est
Object
. Si vous souhaitez un autre type, vous devez créer ces objets à partir des données de façon anonyme les objets de type.Exemple:
Vous devriez envisager de créer la
MyType
objets déjà quand vous obtenez les données, au lieu de créer de façon anonyme les objets de type.Est
aType
est unIEnumerable<anonymous type>
retourné, par exemple une requête linq?Vous pouvez utiliser
Select
(qui applique une fonction de transformation d'un élément) insted deCast
qui effectue simplement un plâtre.Voici un article qui peut vous aider. Bien que je pense de Guffa est à droite, vous devez créer une instance de votre classe à chaque fois que vous en avez besoin. Les types anonymes ne sont pas destinés à être utilisés de cette façon.
Voici le lien:
http://www.codeproject.com/KB/cs/castinganonymous.aspx