Array mit Structure

  • VB.NET

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

    Array mit Structure

    hallo

    ich habe eine liste in der eine Zahl und ein Name steht und ich brauche die alle im Array. und wenn ich dann eins aufrufe, aus dem Array, will ich die id und name lesen können.

    das habe ich doch ich weiß nicht wie ich das jetzt einem Array hin zu fügen kann
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Structure item
    2. Dim id As Integer
    3. Dim item_name As String
    4. End Structure
    5. Private Sub auflisten()
    6. Dim item_txt As String = My.Computer.FileSystem.ReadAllText(My.Resources.items_txt)
    7. Dim items_row() As String = Split(item_txt, vbNewLine)
    8. Dim items() As item
    9. For Each item As String In items_row
    10. Dim a() As String = Split(item, " ", 1)
    11. Dim b As item
    12. b.id = a(0)
    13. b.item_name = a(0)
    14. Next
    15. End Sub


    mfg
    Warum machst du keine Klasse mit ID und Name. Ist doch viel lesbarer, wenn du eine Klasse Person mit den genannten Eigenschaften hast und packst dann alle Personen in eine List(Of Personen)
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:

    Vatter schrieb:

    Warum machst du keine Klasse mit ID und Name. Ist doch viel lesbarer, wenn du eine Klasse Person mit den genannten Eigenschaften hast

    Das selbe gilt für "Structure".
    Der Hauptunterschied zwischen Struk und Klasse ist: Struk ist ein WERT-Typ, Klasse ein REFERENZ-Typ. Wenn man weiß, was man will, kann man das jeweilige sinnvollere nehmen. Man muß aber berücksichtigen, dass .Net hpts. mit "Objekten" (also Referenztypen) arbeitet und alle Wert-Typen bei gewissen Aktionen "geboxed" werden müssen. Gerade wenn man eine Struc in ner Liste speichert, kommt das zum Tragen.

    VB.NET-Quellcode

    1. Public Structure somestruc
    2. Dim i As Integer
    3. End Structure


    VB.NET-Quellcode

    1. Dim a(10) As somestruc
    2. ' geht
    3. a(0).i = 1
    4. Dim l As New List(Of somestruc)
    5. l.Add(New somestruc)
    6. ' geht nicht, weil structure ein geboxeter Value-Type ist
    7. l.Item(0).i = 1


    Solange man bei "Array" BLEIBT gibts also kein Problem, benutzt man woanders List(Of etc muss man anderen Code schreiben!