79 votes

Caster l’objet reçu vers une liste<object> ou IEnumerable<object></object></object>

J’essaie d’exécuter le casting suivant

Mais je me retrouve toujours avec l’exception suivante:

Impossible de convertir l’objet de type 'System.Collections.Generic.List1``[System.Object]'

J’ai vraiment besoin que cela fonctionne parce que cette méthode doit être très générique pour recevoir des objets uniques et des collections de types non spécifiés.

Est-ce possible, ou y a-t-il une autre façon d’y parvenir?

Merci.

95voto

erikkallen Points 16601

C # 4 aura des paramètres de modèle covariants et contravariants, mais jusque-là, vous devez faire quelque chose de non générique comme

79voto

andleer Points 12090

Vous ne pouvez pas convertir un IEnumerable<t> en list<t>.Mais vous pouvez y parvenir à l’aide de LINQ :

</t></t>

11voto

Chris Holmes Points 5475

Le problème est que vous essayez de passer à un objet plus riche. Il vous suffit d’ajouter les éléments à une nouvelle liste :

10voto

Jon Skeet Points 692016

Avez-vous réellement besoin de plus d’informations que ce que simple vous donne? Il suffit de le jeter à cela et de l’utiliser avec. Je suis confronté exactement à la même situation dans certains morceaux de tampons de protocole, et j’ai trouvé que le casting (ou pour y accéder comme une liste) fonctionne très bien.

9voto

Manish Nayak Points 455

Ce code a fonctionné pour moi

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X