Code von c# nach vb (Windows Store)

  • WP8

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von FlashTek.

    Code von c# nach vb (Windows Store)

    Hallo,

    ich würde gerne eine XML-Datei gefiltert auslesen. Dafür habe ich leider nur ein Skript in C# gefunden und ich verstehe es nicht. Kann mir daher jemand helfen, den folgenden Code von C# nach VB (für Windows Store App. Nicht vb.net!) zu übersetzen? Ich habe schon etliche Converter im Internet ausprobiert aber alles was da raus kommt funktioniert nicht.

    Den Code habe ich von folgender Seite: geekchamp.com/articles/how-to-…data-in-windows-8---winrt

    Quellcode

    1. using System.Xml.Linq;
    2. using Windows.ApplicationModel;
    3. public class Person
    4. {
    5. public string FirstName
    6. {
    7. get;
    8. set;
    9. }
    10. public string LastName
    11. {
    12. get;
    13. set;
    14. }
    15. public int Age
    16. {
    17. get;
    18. set;
    19. }
    20. }
    21. string peopleXMLPath = Path.Combine(Package.Current.InstalledLocation.Path, "Assets/PeopleData.xml");
    22. XDocument loadedData = XDocument.Load(peopleXMLPath);
    23. var data = from query in loadedData.Descendants("person")
    24. where (int)query.Element("age") == 27
    25. select new Person
    26. {
    27. FirstName = (string)query.Element("firstname"),
    28. LastName = (string)query.Element("lastname"),
    29. Age = (int)query.Element("age")
    30. };
    31. listBox.ItemsSource = data;


    Falls jemand eine eigene Idee hat wie man das bewerkstelligen kann wäre das natürlich auch super.
    @tolox:: Die Klasse Person sieht so aus:

    VB.NET-Quellcode

    1. Public Class Person
    2. Public Property FirstName As String
    3. Public Property LastName As String
    4. Public Property Age As Integer
    5. End Class
    Und: Gugst Du hier.
    Glaube nicht alles, was der sagt. ;)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich weiß nicht welchen Unterschied es zwischen vb.net und deinem VB geben soll, aber was verstehst du denn nicht?
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    @RodFromGermany::

    tolox schrieb:

    Kann mir daher jemand helfen, den folgenden Code von C# nach VB (für Windows Store App. Nicht vb.net!) zu übersetzen?
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    Der untere Code müsste so aussehen:

    VB.NET-Quellcode

    1. Dim peopleXMLPath As String = Path.Combine(Package.Current.InstalledLocation.Path, "Assets/PeopleData.xml")
    2. Dim loadedData As XDocument = XDocument.Load(peopleXMLPath)
    3. Dim data = From query In loadedData.Descendants("person") Where CInt(query.Element("age")) = 27
    4. New Person() With { _
    5. .FirstName = CStr(query.Element("firstname"), _
    6. .LastName = CStr(query.Element("lastname")), _
    7. .Age = CInt(query.Element("age")) _
    8. }
    9. listBox.ItemsSource = data

    nafets3646 schrieb:

    Der untere Code müsste so aussehen:

    VB.NET-Quellcode

    1. Dim peopleXMLPath As String = Path.Combine(Package.Current.InstalledLocation.Path, "Assets/PeopleData.xml")
    2. Dim loadedData As XDocument = XDocument.Load(peopleXMLPath)
    3. Dim data = From query In loadedData.Descendants("person") Where CInt(query.Element("age")) = 27
    4. New Person() With { _
    5. .FirstName = CStr(query.Element("firstname"), _
    6. .LastName = CStr(query.Element("lastname")), _
    7. .Age = CInt(query.Element("age")) _
    8. }
    9. listBox.ItemsSource = data



    Wenn ich es so einfüge bekomme ich vom VS2013 das Wort "New" unterstrichen mit dem Hinweis "Syntaxfehler."
    @tolox:: So isses. Sonst hätte ich Dir dies auch schon gepostet. :S

    RodFromGermany schrieb:

    Glaube nicht alles, was der sagt. ;)
    Was für ein BASIC hast Du denn nun, wenn nicht VB.NET?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    tolox schrieb:

    Wenn ich es so einfüge bekomme ich vom VS2013 das Wort "New" unterstrichen mit dem Hinweis "Syntaxfehler."

    Ja klar, da fehlt vor dem New ja auch das Select, der Konverter scheint das wohl aus irgendeinem Grund zu verschlucken. Kommt wohl mit Linq nicht so gut zurecht.
    Außerdem scheint da auch noch ne schließende Klammer zu fehlen, aber das kriegt man ja schnell selbst raus...
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.

    RodFromGermany schrieb:

    @tolox: So isses. Sonst hätte ich Dir dies auch schon gepostet.
    Zitat von »RodFromGermany« Glaube nicht alles, was der sagt. Was für ein BASIC hast Du denn nun, wenn nicht VB.NET?


    Ja schon vb.net aber eben für Windows Store. Das unterscheidet sich leider in vielen Dingen gravierend. Allerdings kann ich dir nicht genau sagen wieso.
    Hier kannst du es aber z.T. nachlesen: msdn.microsoft.com/de-de/library/hh694558(v=vs.110).aspx


    Arby schrieb:

    tolox schrieb:

    Wenn ich es so einfüge bekomme ich vom VS2013 das Wort "New" unterstrichen mit dem Hinweis "Syntaxfehler."

    Ja klar, da fehlt vor dem New ja auch das Select, der Konverter scheint das wohl aus irgendeinem Grund zu verschlucken. Kommt wohl mit Linq nicht so gut zurecht.
    Außerdem scheint da auch noch ne schließende Klammer zu fehlen, aber das kriegt man ja schnell selbst raus...


    Habe select davor geschrieben und die Klammer ergänzt. Jetzt wird aber gemeckert, weil: "Der Typ "Person" ist nicht definiert."

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „tolox“ ()

    tolox schrieb:

    weil: "Der Typ "Person" ist nicht definiert."

    Dann definier ihn. RodFromGermany hat dir bereits gezeigt, wie.
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.

    tolox schrieb:

    Ja schon vb.net aber eben für Windows Store. Das unterscheidet sich leider in vielen Dingen gravierend. Allerdings kann ich dir nicht genau sagen wieso.
    Hier kannst du es aber z.T. nachlesen: msdn.microsoft.com/de-de/library/hh694558(v=vs.110).aspx

    Der einzige Unterschied besteht darin, dass du ein paar neue Namespaces hast, die dir Zugang zu zusätzlichen Namespaces verschafft. Ausserdem sollte beispielsweise von der Nutzung von normalen Messageboxen abgesehen werden und die Neuen, bereitgestellten nutzen. Sonst ist alles genau gleich.
    Keine weitere Fehlermeldung. Das ist doch schon mal gut.

    Die ListBox zeigt auch 2 Datensätze an. Das ist auch korrekt.

    Aber die ListBox-Einträge lauten beide "App3.MainPage+Person" . Ich hatte eigentlich auf Vorname und Nachname gehofft. Wie komme ich denn jetzt daran?