Da das ganze sicherlich Dynamisch sein soll , lässt du dein array am besten mit einer for schleife durchlaufen , und löscht den Eintrag innerhalb
Beispiel:
Code:
Dim Test(5) As String
Test(0) = "Hallo"
Test(1) = ""
Test(2) = "Hallo2"
Test(3) = ""
Test(4) = "Hallo3"
Test(5) = ""
For i As Integer = 0 To Test.Length - 1 Step 1
If Test(i) = String.Empty Then
Array.Clear(Test, i, 1)
End If
Next
Problem dabei nur , das da Array dann nur auf Nothing gesetzt wird , aber du möchtest sicher ein neues Array welches keine lehren stellen hat , wie du es bereits beschrieben hast.
Also musst du ein neues Array aufbauen , hier würde sich eine Funktion gut dafür eignen.
Aufruf:
Code:
Dim MeinArray As String() = NeuesArray(Test)
Beschreibung:
Wir erstellen ein neues Array und weißen als quelle die Funktion hinzu.
Mit dem Ausgangs Array Test als Parameter.
Funktion:
Code:
Private Function NeuesArray(ByVal ArrayList As String()) As String()
Dim FinaleArrayAnzahl As Integer = 0
Dim zaehler As Integer = 0
For i As Integer = 0 To ArrayList.Length - 1 Step 1
If Not ArrayList(i) = String.Empty Then
FinaleArrayAnzahl += 1
End If
Next
Dim BufferArray(FinaleArrayAnzahl - 1) As String
For x As Integer = 0 To ArrayList.Length - 1 Step 1
If Not ArrayList(x) = String.Empty Then
BufferArray(zaehler) = ArrayList(x)
zaehler += 1
End If
Next
Return BufferArray
Beschreibung:
Innerhalb der Funktion laufen wir das Array durch und schauen , wie groß unser neues Array werden muss , dabei werden natürlich die lehren Elemente ignoriert.
Danach erstellen wir ein ArrayDummy in das wir mit der neuen Länge initialisieren.
Danach laufen wir wieder das Ausgangs Array durch und prüfen innerhalb der schleife ob der Eintrag nicht leer ist , wenn das so ist schreiben wir das neue Element in unser BufferArray.
Danach zählt der zaehler um eins hoch , somit haben wir immer das richtige Array Element das wir schreiben wollen.
Hoffe ich konnte dir damit helfen
MfG