2009-04-03 2 views

Antwort

20

Falsche Richtung:

myArray = Nothing 

Nur setzt die Variable zeigt auf das Array zu nichts, aber nicht wirklich das Array löschen. Alle anderen Variablen, die auf das gleiche Array verweisen, enthalten weiterhin den Wert. Daher ist es notwendig, das Array zu löschen.

richtige Weg

Array.Clear(myArray,0,myArray.Length) 
+0

Eine kleine Korrektur im Code vorgenommen. ;-) – Cerebrus

+0

* Langsamer Applaus für Cerebrus * das macht es VIEL besser verständlich :) – TheTXI

+3

Das löscht das Array nicht - es setzt die Variable auf Nothing. Alles andere, das sich auf dasselbe Array bezieht, wird weiterhin die vorhandenen Werte anzeigen. –

2

Je was Sie wollen:

  • Assign Nothing (null)
  • Vergeben Sie einen neuen (leeren) Array
  • Array.Clear

Last ist wahrscheinlich am langsamsten, aber nur Option, wenn Sie kein neues Array wünschen.

2

Wenn Sie Dinge wie deaktivieren möchten, möchten Sie wahrscheinlich eine Sammlung wie List(Of String) anstatt ein Array.

+0

Guter Punkt, aber existing array ... kann einen String nicht in eine Liste von Strings in einem Befehl aufteilen? – spacemonkeys

+0

Nein, aber Sie könnten .ToList() für das Ergebnis von String.Split aufrufen. –

+0

Oder List.AddRange() –

6

Und natürlich gibt es den VB Weg, um das Erase Schlüsselwort:

Dim arr() as String = {"a","b","c"} 
Erase arr 
+1

+1 für den VBism, aber leider ist 'Erase' [dokumentiert] (https://msdn.microsoft.com/en-us/library/83zyeke9.aspx) um gleich zu sein als setze nur die Variable (n) auf "Nichts". Das Array wird nicht gelöscht. –

1

ReDim arr (1,1,1,1) und dann ReDim (z, x, y, v), um Ihr Abmessungen

Verwandte Themen