LINQ unable to cast object [Résolu]

Signaler
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Messages postés
15923
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 mai 2021
-
Bonjour,

J'ai la class Info
public    Class info   
          public name as string
           public day as string
           public  thedate as string
end class
et 
public listA as new list of(info)
private function FillListA as list of(info)
  'bla bla
end function
public function Query  as  list of(info)
  listA = FillListA()
  dim  listinfo  = From evenement  in listA where evenement.name .contains("toto")  and evenement.day = "monday" and evenement.thedate = " 4 july" select evenement
 return listinfo
end function</code >

déjà une erreur  a la ligne  <code>return listinfo

le correcteur marque
Return CType(listinfo, Global.System.Collections.Generic.List(Of info))
Mais quand je lance j'obtiens l'erreur
Unable to cast object of type 'WhereSelectListIterator`2[info,info]' to type 'System.Collections.Generic.List`1info]'.

merci d'avance

3 réponses

Messages postés
15923
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 mai 2021
540
Bonsoir
merci de poster ton code lisiblement en appliquant la procédure décrite ici
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Bonsoir
On ne peut pas modifier le post original l'icon crayon "modifier" n'apparait pas
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
public    Class info   
          public name as string
           public day as string
           public  thedate as string
end class

et
public listA as new list of(info)
private function FillListA as list of(info)
  'bla bla
end function

public function Query  as  list of(info)
  listA = FillListA()
  dim  listinfo  = From evenement  in listA where evenement.name .contains("toto")  and evenement.day = "monday" and evenement.thedate = " 4 july" select evenement
 return listinfo
end function


déjà une erreur a la ligne
return listinfo


le correcteur marque
Return CType(listinfo, Global.System.Collections.Generic.List(Of info))
Mais quand je lance j'obtiens l'erreur
Unable to cast object of type 'WhereSelectListIterator`2[info,info]' to type 'System.Collections.Generic.List`1info]'.
Messages postés
15923
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 mai 2021
540
Une requête linq retourne un IEnumerable(of. ) comme ta méthode est définie comme retournant une List(of ) listinfo doit être une List.
Il suffit donc de caster listinfo en List:
Return listinfo.ToList()
à condition bien sûr que ListA contienne des « info »