Implizite Typisierung bei LINQ vermeiden

16/11/2009 - 18:29 von Udo Ewender | Report spam
Hallo,

da ich gerne mit Option Strict On arbeite, aktiviere ich das grundsàtzlich
über in allen Codefenstern. Beim Einsatz von Linq macht das aber Probleme
und ich weiß nicht wie ich die Abfragen so erweitern kann daß keine
Fehlermeldung aufgrund einer impliziten Konvertierung angezeigt wird.
Konkret geht es um folgende 2 Fàlle:

xDoc.Root.Add(From grp As ListViewGroup In LV.Groups _
Select ...

"... implizite Konvertierung von Object in
System.Windows.Forms.ListViewGroup"

und:

Dim g As New ListViewGroup With {.Header = grp.Element("Header")}


"... implizite Konvertierung von System.XML.Linq.XElement in String"

wie müssen diese Dinge ausformuliert lauten?

Danke und freundliche Grüße,

Udo
 

Lesen sie die antworten

#1 Armin Zingler
16/11/2009 - 19:09 | Warnen spam
Udo Ewender schrieb:
Hallo,

da ich gerne mit Option Strict On arbeite, aktiviere ich das grundsàtzlich
über in allen Codefenstern. Beim Einsatz von Linq macht das aber Probleme
und ich weiß nicht wie ich die Abfragen so erweitern kann daß keine
Fehlermeldung aufgrund einer impliziten Konvertierung angezeigt wird.
Konkret geht es um folgende 2 Fàlle:

xDoc.Root.Add(From grp As ListViewGroup In LV.Groups _
Select ...

"... implizite Konvertierung von Object in
System.Windows.Forms.ListViewGroup"

und:

Dim g As New ListViewGroup With {.Header = grp.Element("Header")}


"... implizite Konvertierung von System.XML.Linq.XElement in String"

wie müssen diese Dinge ausformuliert lauten?



Lass' das "As ListViewGroup" doch einfach weg, denn der Typ der Eigenschaft
Group (ListViewGroupCollection) bietet keine typisierte Auflistung
sondern lediglich ICollection, IEnumerable, IList die jeweils "Object"
liefern.

From grp In lv.Groups Select DirectCast(grp, ListViewGroup)


Ansonsten: Ich weiß nicht genau, was du vorhast, aber wenn du nur ein einzelnes Item,
also ein ListViewGroup-objekt an die Add-Methode übergeben willst, dann musst du erst
eines aus der Query holen, denn so fügst du eine ganze Auflistung vom Typ
IEnumerable(Of ListViewGroup) hinzu. Kann ja aber sein, dass du das willst, bzw ich
weiß nicht, wie die Query weitergeht.


Armin

Ähnliche fragen