Mehrdimensionale Array - neu mit List(of String)

  • VB.NET

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

    Mehrdimensionale Array - neu mit List(of String)

    Hallo,

    habe bisher mit einem dem "alten" array gearbeitet...

    also so :

    VB.NET-Quellcode

    1. Dim myArray as string()
    2. myArray.add("Test1", "Test2")


    Nun habe ich schon ein paar mal gesagt bekommen, dass dies eigentlich veraltet ist ... und gelesen hab i davon auch schon..


    Ist die richtige Alternatie eine List(of String)?

    Habe bisher nur dazu was gefunden was die Bescheibung von eindimensionaler List(of string) beschreibt.

    Habe Ihr das schon mal mehrdimensional versucht?

    lris
    Eine List ist immer eindimensional soweit ich weiß.

    So what?

    Dim ll as List(Of List(Of String))
    Dim lll As List(Of List(Of List(Of String)))
    usw usw

    Wenn man von mehrdimensionalen Arrays kommt, sollte man allerdings eher mal überlegen, ob man dann nicht auch einen komplett anderen Ansatz der Speicherung wählt ...
    Denn MEISTENS speichert man in solchen Arrays "dumme" Werte. Während OO halt viel einfacher macht.
    Hab jetzt folgenden Ansatz gemacht:

    VB.NET-Quellcode

    1. Public myPrintJobs As New List(Of String())
    2. ...
    3. Private Sub Vorschau_Drucken()
    4. ...
    5. Dim PJobNr As String = System.DateTime.Now.ToString("yyyy") & DateTime.Now.DayOfYear & System.DateTime.Now.ToString("hhmmssfff")
    6. myPrintJobs.Add({PJobNr, "Vorschau", DataGridView2.Rows(DataGridView2.CurrentRow.Index).Cells(5).Value})
    7. Dim PJobs As New Druckenauftraege
    8. PJobs.Start()
    9. ..


    Nun suche ich nach einer Möglichkeit diesen einen PrintJob in der Liste zu finden und natrürlich wieder zu löschen... weil ja abgearbeitet wurde...

    Jemand ne Idee ??


    Ist mein Ansatz für List of Richtig ?

    lris
    Ist mein Ansatz für List of Richtig ?

    Nein. Du denkst nicht objektorientiert.

    Public Class PrintJob
    Public ID As String
    Public Name As String
    Public Inhalt as String
    Public foo as bar
    ....
    End Class

    Dim l as List(Of PrintJob)
    l.Add(New PrintJob with {.ID="", .Name="ups", .Inhalt="woff" usw usw usw })

    Damit brauchst du nur eine EINdimensionale Liste, die wiederum komplexere Objekte enthält.

    Das mit dem Suchen und Löschen kannst du dir schenken, wenn du statt List(Of T) einfach Queue(Of T) verwendest. Wenn du das "erste" Element "liest" ist es weg. feddich ;)