Benutzer mit den meisten Antworten
Linq Verständnisfrage

Frage
-
Hallo zusammen
Was ich nicht verstehe ist,
ich habe diese Code Zeile,
Dim rowList1 As List(Of ZRFDataSet.ZeitRow) = From rz In _dtZeit.AsEnumerable.ToList
beim ausführen bekomme ich die
Fehlermeldung:
DirectCast(ex,System.InvalidCastException).Message
Das Objekt des Typs "WhereSelectListIterator`2[Zeiterfassung.ZRFDataSet+ZeitRow,Zeiterfassung.ZRFDataSet+ZeitRow]"
kann nicht in Typ "System.Collections.Generic.List`1[Zeiterfassung.ZRFDataSet+ZeitRow]" umgewandelt werden.Aber es zeigt mir doch immer den Typ "Zeiterfassung.ZRFDataSet+ZeitRow"
wenn ich diesen Code im Debugger ausführe
Dim rowList1 = From rz In _dtZeit.AsEnumerable.ToList
und nach dem Ausführen im ToolTip das Ergebnis anschaue
wird mir doch genau der Typ "Zeiterfassung.ZRFDataSet.ZeitRow" angezeigt.Was ist der Fehler wenn ich schreibe Dim mit As List(Of ZRFDataSet.ZeitRow)
Dank und Gruss
Peter
Antworten
-
Hi Peter,
über die 8te Klasse bin ich raus gekommen. Punkt vor Strich und Klammer ist im Grunde auch klar.
Ich glaube, das ist Dir noch nicht so richtig klar.
( From rz In _dtZeit.AsEnumerable) –> der Enumerator wird durchlaufen und eine Ergebnismenge erzeugt, die dann mit .ToList einer Liste zugewiesen wird.
_dtZeit.AsEnumerable.Tolist –> es wird eine Liste erzeugt –> From rz In _dtZeit.AsEnumerable.Tolist –> es wird ein Enumerator bereitgestellt, der später für ein Bereitstellen der Elemente genutzt werden kann.
Dim rowList1 As List(Of ZRFDataSet.ZeitRow) = From rz In _dtZeit.AsEnumerable.ToList –> geht nicht, da ein Enumerator keine Liste ist.
--
Viele Gruesse
Peter- Als Antwort markiert peter haus Dienstag, 27. September 2011 06:03
Alle Antworten
-
Hi Peter,schau mal im Mathe-Lehrbuch der 8. Klasse nach. Da dürfte erklärt sein, dass mit Klammern die Folge der Berechnungen verändert wird. Die in Klammern eingeschlossenen Ausrücke werden erst berechnet, bevor es außen weitergeht.--
Viele Gruesse
Peter -
Hi Peter,
über die 8te Klasse bin ich raus gekommen. Punkt vor Strich und Klammer ist im Grunde auch klar.
Aber der Unterschied ( From rz In _dtZeit.AsEnumerable).Tolist
zu
From rz In _dtZeit.AsEnumerable.Tolist
ist mir noch nicht klar.
Wieso die typisierte Zuweisung (zu List (Of) ) ohne Klammer nicht gehklapt .Gruss Peter
-
Hi Peter,
über die 8te Klasse bin ich raus gekommen. Punkt vor Strich und Klammer ist im Grunde auch klar.
Ich glaube, das ist Dir noch nicht so richtig klar.
( From rz In _dtZeit.AsEnumerable) –> der Enumerator wird durchlaufen und eine Ergebnismenge erzeugt, die dann mit .ToList einer Liste zugewiesen wird.
_dtZeit.AsEnumerable.Tolist –> es wird eine Liste erzeugt –> From rz In _dtZeit.AsEnumerable.Tolist –> es wird ein Enumerator bereitgestellt, der später für ein Bereitstellen der Elemente genutzt werden kann.
Dim rowList1 As List(Of ZRFDataSet.ZeitRow) = From rz In _dtZeit.AsEnumerable.ToList –> geht nicht, da ein Enumerator keine Liste ist.
--
Viele Gruesse
Peter- Als Antwort markiert peter haus Dienstag, 27. September 2011 06:03