Listen in Listen speichern

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Listen in Listen speichern

    Hi,


    versuche gerade Listen in Listen zu speichern und dann mit for each abzuarbeiten

    VB.NET-Quellcode

    1. Dim CH as List(of Integer)
    2. Dim PA as List(of List(of Integer))
    3. CH.add(1)
    4. CH.add(2)
    5. PA.add(CH)
    6. PA.add(CH)
    7. 'Soweit gibts noch keine Fehler
    8. 'Hier gibts eine Fehlermeldung
    9. For Each O As List(Of List(Of Integer)) In PA
    10. Next



    Wie kann man es sonst abfragen? Geht das überhaupt?

    Gruß
    Brichun
    Bist du sicher, dass du zweimal dasselbe Objekt zur Liste hinzufügen willst?
    Außerdem müsste der Code schon in Zeile 4 Fehler werfen, da CH und PA Nullverweise sind.
    Du hast ihnen nämlich nirgends ein List-Objekt, das du z.B. mit New erzeugt hast, zugewiesen.
    Ansonsten:

    VB.NET-Quellcode

    1. Dim CH As New List(Of Integer)
    2. Dim PA As New List(Of List(Of Integer))
    3. CH.Add(1)
    4. CH.Add(2)
    5. ' hier fügst du CH zweimal der Liste hinzu
    6. PA.Add(CH)
    7. PA.Add(CH)
    8. For Each O As List(Of Integer) In PA
    9. ' ...
    10. Next

    Bist du sicher, dass du zweimal dasselbe Objekt zur Liste hinzufügen willst?



    Ist nur ein Versuch den ich dann übertragen möchte.




    Außerdem müsste der Code schon in Zeile 4 Fehler werfen, da CH und PA Nullverweise sind.
    Du hast ihnen nämlich nirgends ein List-Objekt, das du z.B. mit New erzeugt hast, zugewiesen.


    In der ersten Zeile verweise ich doch auf eine Liste(of Integer)





    Aufgabe:

    Liste(of Integer)
    mit Zahlen
    soll in eine Liste gespeichert werden.

    Versteht man was ich möchte?
    Ich hab dir doch einen Code gegeben.

    Zu der Erklärung:

    In der ersten Zeile passiert Folgendes:
    Du deklarierst eine Variable ("CH") vom Typ List(Of Integer).
    Allerdings, wie oben markiert, deklarierst du sie nur. Du weist ihr nichts zu.
    Mit dem New-Schlüsselwort kannst du á la New Klasse(Parameter) ein neues Objekt (oder: eine neue Instanz) einer Klasse/Struktur (in unserem Fall Klasse) erstellen.
    Der Verweis auf diese Instanz wird zurückgegeben. Diesen speicherst du am besten in einer Variable, damit du später auch auf dein neues Objekt zugreifen kannst.
    Also:

    VB.NET-Quellcode

    1. Dim CH As List(Of Integer)
    2. CH = New List(Of Integer)
    3. ' was äquivalent ist zu
    4. Dim CH As List(Of Integer) = New List(Of Integer)
    5. ' und
    6. Dim CH As New List(Of Integer)
    Wie du in der ersten Zeile siehst, wird CH deklariert - was du in deinem Code auch machst.
    Danach wird mit New List(Of Integer) eine neue Instanz erstellt, und die Referenz zu dieser in CH gespeichert - was in deinem Code nicht passiert, und weshalb er crashen sollte.
    Selbiges sollte mit "PA" passieren.

    Ich hoffe, du verstehst das. :)