Array Probleme

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Drahuverar.

    Array Probleme

    Hi Leute..

    Immer wieder ein Problem für mich: Array(s)

    Ich habe Variablen (Strings) die ich in ein Array speichern will um sie im Anschluss durchlaufen zu können, um nicht jede einzelne variable aufrufen zu müssen.

    VB.NET-Quellcode

    1. Dim sBenutzerName as String
    2. Dim sIrgendwas as String
    3. Dim sNochIrgendwas as String'...und sooooo weiter
    4. Dim sArray as 'Hier habe ich das Problem, wird die Variable sArray() gesetzt, oder ... "as String()" oder als List Of???!


    Im Endeffekt habe ich 20 Variablen die ich über eine Datenbank fütter,
    in diesen Variablen kommen manchmal folgende Zeichenfolgen vor "{95}" (also "_") ich möchte mir etwas schreiben das die Variablen einmal überprüft und dann, sofern diese Zeichenfolge vorhanden ist, es mit einem Leerzeichen ersetzt. (Kein Problem)

    Das Problem liegt lediglich bei Arrays,... Was Arrays sind habe ich verstanden, aber irgendwie gibt es Probleme beim "anwenden" ^^

    Ich hoffe ihr habt Verständnis.. Danke euch! :)
    Option Strict On!

    VB.NET-Quellcode

    1. Dim sarray As String() = {"Hallo", "das" , "ist" , "ein", "Array" , "mit" , "8" , "Einträgen."} 'Möglichkeit 1
    2. Dim sarray() As String = {"Hallo", "das" , "ist" , "ein", "Array" , "mit" , "8" , "Einträgen."} 'Möglichkeit 2
    3. 'Und dann
    4. For Each str As String in sarray
    5. 'Jedes Element...
    6. Next
    Bei Möglichkeit 2 kannst du nach Wunsch das Limit für die Anzahl festlegen, also einfach einen Integer in die Klammern.


    Bei deinem Beispiel aber macht eine List mehr Sinn:

    VB.NET-Quellcode

    1. Dim stringlist As New List(Of String)
    2. stringlist.Add("Hallo")
    3. stringlist.Add("Leute")
    4. stringlist.AddRange({"Hallo", "das" , "ist" , "eine", "List"})
    5. 'Und dann
    6. For Each str As String in stringlist
    7. 'Jedes Element...
    8. Next
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    @Drahuverar:: Oder so was:

    VB.NET-Quellcode

    1. Dim etwas As String = "bla"
    2. Dim etwasArray(100) As String
    3. etwasArray(17) = etwas
    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!
    @ThePlexian
    Erstmal danke,.. Und noch einige Fragen:
    Worin liegt der Unterschied nun?
    Wir der Speicher bei Möglichkeit eins anders reserviert als bei Möglichkeit zwei?
    Weiß VB.NET wie es diese variablen handhaben muss, gibt es Performance Verluste?


    Was ist der Unterschied zwischen List (Of ..) und Arrays nun?
    Arrys sind Datenfelder (mehrere Dimensionen) und List (Of..) also eine Liste ..?^^


    @RodFromGermany
    Ich muss aber meinem Array im Vorfeld schon sagen wie viele Werte ich Speichern möchte?

    Danke euch.
    Option Strict On!

    Drahuverar schrieb:

    Ich muss aber meinem Array im Vorfeld schon sagen wie viele Werte ich Speichern möchte?

    Exakt. Entweder gibst du bei erstellen des Arrays alle Werte an, die es halten soll, oder du sagst ihm für wie viele Werte es bereits Speicher reservieren soll.

    Ein Array ist wie schon gesagt statisch es kann nur eine bestimmte menge an Informationen halten.
    Eine Liste ist dynamisch. bei ihr kannst du mittels .Add() oder .AddRange() werte hinzufügen wie du gesehen hast. Wie es nun im Speicher aussieht ist mir nicht ganz bewusst, jedoch werden hier nicht 100 Felder Speicher vorbelegt.

    Zwischen Möglichkeit eins und zwei sollte es keinen Unterschied geben, dürfte letztendlich zum selben IL- und damit Maschinencode werden

    Auch mit Listen kannst du mehrere Dimensionen "erzeugen". Eine List(Of List(Of string)) wäre ungefähr das selbe wie ein zweidimensionales Array.

    Drahuverar schrieb:

    Was ist der Unterschied zwischen List (Of ..) und Arrays nun?
    Ich meine, dass Arrays da verwendet werden sollen, wo die Anzahl der Member a priori feststeht oder wo das Framework Dir ein Array zurückgibt GetFiles("*.*).
    Ansonsten ist List(Of X) in jedem Falle die bessere Variante.
    @EaranMaleasi:: List(Of X) hängt beim Appenden immer eine größere Anzahl Elemente an, wegen der Performance (kannst Du in einem CLI-Projekt verfolgen, diese werden bei Shift+F9 mit angezeigt).
    Arrays werden vollständig im Speicher bereitgestellt.
    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!