vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
LINQ Cast Operator funktioniert nicht 
Autor: Hermann55
Datum: 29.03.13 16:03


Hallo

Ich habe ein kleines VB Problem mit LINQ
Versuche gerade vb.Net zu erlernen benutze die Version 2008

in meinem Buch ist ein Beispiel mit dem Cast-Operator aufgeführt, aber leider funktioniert der Unten Stehende Code nicht.
Sämtliche Suche in der Hilfe auch ohne erfolg, bin mit meinem Wissen am ENDE

Wo Bitteschön liegt der Fehler

Dank im Voraus

Hermann


Module Module1
     Private Produkte As List(Of Produkt)
    Sub Main()
            Console.Title = "LINQ Cast-Operator Beispiel"
            InitDaten()
            CastBeispiel()
            Console.ReadLine()
    End Sub
    ' Beispiel Cast-Operator
    Sub CastBeispiel()
        Dim AlleProduktPreis = (From P In Produkte Select P.Preis).Cast(Of _
          Single)()
            For Each P In AlleProduktPreis
               Console.WriteLine(P)
            Next
    End Sub
 
    Sub InitDaten()
        Produkte = New List(Of Produkt)
        Produkte.Add(New Produkt With {.ProduktNr = 5000, .ProduktName = _
          "Butter", .Preis = 20})
        Produkte.Add(New Produkt With {.ProduktNr = 5001, .ProduktName = _
        "Salz", .Preis = 30})
        Produkte.Add(New Produkt With {.ProduktNr = 5002, .ProduktName = _
        "Kartoffeln", .Preis = 40})
        Produkte.Add(New Produkt With {.ProduktNr = 5003, .ProduktName = _
        "Wein", .Preis = 50})
    End Sub
 
End Module
 
Class Produkt
    Private _ProduktNr As Integer
    Private _ProduktName As String
    Private _Preis As Double
 
    Property ProduktNr() As Integer
        Get
            Return _ProduktNr
        End Get
        Set(ByVal value As Integer)
            _ProduktNr = value
        End Set
    End Property
 
    Property ProduktName() As String
        Get
            Return _ProduktName
        End Get
        Set(ByVal value As String)
            _ProduktName = value
        End Set
    End Property
 
    Property Preis() As Double
        Get
            Return _Preis
        End Get
        Set(ByVal value As Double)
            _Preis = value
        End Set
    End Property
 
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LINQ Cast Operator funktioniert nicht 
Autor: Christoph1972
Datum: 29.03.13 16:08

Mach mal aus Single ein Double.

Gruß
Christoph

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LINQ Cast Operator funktioniert nicht 
Autor: Hermann55
Datum: 29.03.13 18:25

Hallo Christoph

ja mit Double geht´s aber dann Verstehe ich das ganze nicht, warum aus Double - Double machen gibt doch keinen sinn.

Gruß
Hermann
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LINQ Cast Operator funktioniert nicht 
Autor: Christoph1972
Datum: 29.03.13 18:42

Stimmt, ich hatte nicht gesehen das es ein Double ist, ich hatte ein Integer gesehen. Egal, aber macht ein Casting in Single wirklich sinn?? In meinen Augen macht das ähnlich viel sinn wie eine Konvertierung in Double. Das Casten kannst du dir sparen.

Gruß
Christoph

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LINQ Cast Operator funktioniert nicht 
Autor: Hermann55
Datum: 29.03.13 18:59

Danke Christoph für die schnelle antwort


OK kann sein das es in meinem Beispiel keinen Sinn macht, mir geht es eigenlich nur um LINQ zu verstehen. Wenn es einen Cast-Operator giebt warum Funktioniert er nicht in meinem Code (aus einem Lehrbuch)

Wo liegt der Fehler, mus die Cast-Methode etwa umgeschrieben werden?

Gruß
Hermann
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LINQ Cast Operator funktioniert nicht 
Autor: Christoph1972
Datum: 29.03.13 19:02

Eventuell ist das absicht, da Single ungenauer ist!? Wie gesagt, in meinen Augen würde diese Konvertierung keinen Sinn machen. Aber hier gibt es User die können da sicher mehr zu sagen. (Warte nur die melden sich gleich )

Gruß
Christoph

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LINQ Cast Operator funktioniert nicht 
Autor: Hermann55
Datum: 29.03.13 19:13

Danke Christoph

bin mahl gespannt ob mir hir im Forum ein SpezalisierterSpazialSpezialist helfen kann?

Gruß
Hermann
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LINQ Cast Operator funktioniert nicht 
Autor: ModeratorDaveS (Moderator)
Datum: 29.03.13 19:39

LINQ Cast(Of ) ist eine Assertion, dass die Werte vom angegebenen Type sind. Es gibt keine Konvertierung.

Wenn du Single willst kannst du ... Select CSng(P.Preis) oder For Each P As Single ... schreiben.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LINQ Cast Operator funktioniert nicht 
Autor: Hermann55
Datum: 29.03.13 19:52

Danke DaveS

ja so geht´s hätte auch selber drauf kommen können

Gruß
Hermann
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Ergänzender Hinweis 
Autor: Manfred X
Datum: 29.03.13 20:50

Eigenschaften zur Verwaltung von (größeren) Geldbeträgen
sollten - falls möglich - den Datentyp Decimal
benutzen (höhere Darstellungsgenauigkeit der Werte).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel