2 votes

foreach sur le type inconnu

Je dois pouvoir faire une boucle autour d'un type inconnu, par exemple

  foreach (var test in viewData["foobar"])
  {
  }

Des suggestions ?

7voto

Anton Gogolev Points 59794

Vous devez au moins lancer viewData["foobar"] a IEnumerable d'avoir object dans votre test variable.

Le lancer peut échouer, vous devrez donc d'abord vérifier si viewData["foobar"] met effectivement en œuvre IEnumerable con is o as opérateur :

if(viewData["foobar"] is IEnumerable)
    foreach(var test in (IEnumerable)viewData["foobar"])

Notez que cela utilise System.Collections.IEnumerable pas System.Collections.Generic.IEnumerable<> .

0voto

Webleeuw Points 3879

Si viewData["foobar"] est de type objet, alors vous ne pouvez pas l'itérer. La seule façon d'itérer avec une boucle foreach est sur les types dérivés de IEnumerator.

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