VB.NET Array

VB.NET Array
VB.NET Array

VB.NET Array

Du möchtest mehr über das VB.NET Array lernen, bzw. wissen was Arrays sind und wie man Sie verwendet?

Dann freue ich mich, dass Du durch deine Recherche nach dem VB.NET Array auf meine Seite und zu diesem Beitrag gefunden hast!

Vielleicht findest Du die folgenden Beiträge auch noch interessant: Await-Operator, Callbacks, AndAlso.

Was sind Datenfelder (Arrays)

Ich denke, dass das nicht zwangsweise die erste Frage ist, die man sich stellt, da man eher aus einer Notwendigkeit auf ein Array o. Ä. stößt.

Vermutlich steht man einfach irgendwann an dem Punkt als Entwickler, dass man Sachen wie: „Mehrere Elemente speichern“, „Liste erstellen“, uvm. recherchiert.

Das heißt, man stößt irgendwann die Grenzen einer normalen Variable, Welche natürlich nur einen Wert“ (wenn auch komplexe Werte) speichern kann.

Datenelemente zwischenspeichern – VB.NET Array

Für das diesmalige Beispiel nehmen wir uns einmal konkret vor, verschiedene Rechnungsnummern als String-Array zu speichern.

An sich ist die konkrete Problemstellung für das Beispiel egal, ich bin allerdings ein Fan davon, etwas Greifbares und somit meiner Meinung nach Verständlicheres zu haben.

Rechnungsnummern können natürlich auch aus einer Kombination von Zeichen und Ziffern bestehen, daher verwenden wir hier ein Array bestehend aus Strings.

Rechnungsnummer entgegennehmen

Bevor wir mit dem Array starten können, muss man sich natürlich erstmal überlegen, wie man die einzelnen Rechnungsnummern entgegennehmen möchte.

Für eine simple Demonstration nehmen wir einfach eine einfache InputBox, alternativ könnte man natürlich auch eine Textbox, oder eine Eingabe in einer Konsolenanwendung verwenden.

Dim billNr As String = InputBox("Enter the bill nr please!")

Da wir nun die Rechnungsnummer haben, wäre die nächste Frage, wie man diese Nummer nun in ein String-Array bekommt.

Aus eins mach drei – VB.NET Array

Oben drüber hast du ein Beispiel gesehen, wie Du eine Rechnungsnummer in einer Variable speichern kannst.

Eine Variable ist in erster Linie dazu da, nur ein Datenelement / Objekt zu speichern, auch wenn Dieses wie z. B. eine Instanz einer eigenen Klasse auch komplex sein kann.

In erster Linie hat man häufig – besonders als Anfänger – das Problem, dass man jedoch mehrere Daten speichern muss.

Genau an dieser Stelle kommen dann VB.NET Arrays ins Spiel, Welche auch gerne Datenfelder, bzw. Felder genannt werden.

Wie man’s nicht machen sollte

Das Internet ist natürlich eine wunderbare Sache, wenn man gewisse Sachen recherchiert, sonst wärst Du ja auch nicht auf meine Seite gestoßen.

Leider gibt es auch viele schwarze Schafe, bzw. nicht so optimale Beispiele, hier wäre Eins davon:

Dim billNr1 As String
Dim billNr2 As String
Dim billNr3 As String

Leider finde ich diese gängige Variante sehr häufig bei den verschiedensten Entwicklern im Code – speziell bei Neulingen.

Statt hier geeignete Datentypen zu verwenden – wovon z. B. Einer gleich folgen wird – werden stattdessen solche Experimente durchgeführt.

Eines der Hauptprobleme mit dem obigen Beispiel (also der Durchnummerierung von Variablen) ist, dass man Dieses z. B. nicht gut iterieren kann.

Warum Karton statt Container? – VB.NET Array

Warum sollte man einen Karton für eine ganze Wohnung verwenden, wenn man direkt – richtigerweise – einen Container nehmen kann.

Dieser Container könnte hier die Analogie zum VB.NET Array darstellen, worin man mehrere Werte auf einmal speichern kann.

Als nächstes zeige ich Dir, wie Du ein Array erstellen und anschließend benutzen kannst.

Beispiele aus dem Netz

Im Internet sehe ich häufig Beispiele wie das Folgende, nur denke ich, dass es anderweitig durchaus besser wäre:

Dim billNrs(2) As String

Denn übersetzt ins Deutsche würde die Anweisung eigentlich das hier heißen: „Definiere ein Array namens billNrs als String-Array, Welches 3 (!) Elemente speichern kann.“

Die durchaus richtige Beschreibung des Codes passt allerdings nicht zur – ich nenne es mal – Grammatik.

DimAnweisungen kann man für gewöhnlich auf das Wesentliche, Folgende herunterbrechen.

Falsche Grammatik?

"Lege die Variable A als Ding vom Typ B fest"

Die Anweisung von oben würde ich allerdings irrtümlich als das hier auffassen:

"Lege billNrs von der Größe G als String fest"

Das empfinde ich persönlich als unlogisch, da wir die Variable ja nicht als String, sondern als String-Array festlegen / deklarieren möchten.

Richtige Grammatik!

Ich selbst bevorzuge daher die folgende Variante:

Dim billNrs = New String(2) {}

Das empfinde ich dann richtigerweise als folgende Formulierung:

"Lege billNrs als Array von 3 Strings fest"

Die Strings ins String-Array füllen – VB.NET Array

Als nächstes demonstriere ich Dir, wie Du das definierte String-Array nun mit Rechnungsnummern bestücken kannst.

Behalte dabei im Kopf, dass Arrays allgemein bei 0, also mit dem sogenannten Index anfangen.

Initialisieren

Neben der simplen Deklaration oben, zeige ich Dir nun, wie Du ein String-Array initialisieren, sprich direkt mit Werten befüllen kannst.

Dim billNrs As String() = {"B2209", "B2355", "B2409"}

Index manuell angeben

Jetzt geben wir den Index mal manuell an, um direkt via Zahl auf das jeweilige Element zuzugreifen:

Dim billNrs = New String(2) {}
billNrs(0) = "B135"
billNrs(1) = "B136"
billNrs(2) = "B137"

Mit Schleife durchlaufen

Nun durchlaufen wir das String-Array und können bei jedem Durchlauf den Wert für die jeweilige Rechnung setzen:

For i = LBound(billNrs) To UBound(billNrs)
    billNrs(i) = ' the new value!
Next

Werte anschließend hinzufügen – VB.NET Array

Natürlich kommt man nach der anfänglichen Deklaration, bzw. Initialisierung auch irgendwann an den Punkt, dass man auch danach noch Werte hinzufügen möchte.

Dafür verwenden wir die ReDim-Anweisung in Kombination mit dem Preserve-Modifizierer, um die Kapazität des Arrays neu festzulegen und vorhandene Elemente zu behalten.

Dim billNrs(1) As String() = {"B1", "B2"}
ReDim Preserve billNrs(2)
billNrs(2) = "B3"

Nach der Abarbeitung unseres Codes befinden sich die Strings B1, B2 und B3 im String-Array.

Downloads

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert