2009-04-03 25 views

Répondre

20

Mauvaise façon:

myArray = Nothing 

sets uniquement le pointage variable au tableau à rien, mais ne disparaît pas en fait le tableau. Toutes les autres variables pointant vers le même tableau contiendront toujours la valeur. Par conséquent, il est nécessaire d'effacer le tableau.

Correct Way

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

Fait une correction mineure dans le code. ;-) – Cerebrus

+0

* lent applaudissement pour cerebrus * qui le rend BEAUCOUP plus compréhensible :) – TheTXI

+3

Cela ne supprime pas le tableau - il définit la variable à Nothing. Tout ce qui se rapporte au même tableau verra toujours les valeurs existantes. –

2

Selon ce que vous voulez:

  • Assigner Nothing (null)
  • Attribuez un nouveau tableau (vide)
  • Array.Clear

Dernière est susceptible d'être la plus lente, mais seulement option si vous ne voulez pas un nouveau tableau.

2

Si vous avez besoin de faire des choses comme effacer, vous voulez probablement une collection comme List(Of String) plutôt qu'un tableau.

+0

Bon point, mais tableau existant ... ne peut pas diviser une chaîne en une liste de chaînes dans une commande pouvez-vous? – spacemonkeys

+0

Non, mais vous pouvez appeler .ToList() sur le résultat de String.Split. –

+0

Ou List.AddRange() –

6

Et bien sûr, il y a la façon de VB en utilisant le mot-clé Effacer:

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

+1 pour le VBism, mais, malheureusement, 'Erase' est [documenté] (https://msdn.microsoft.com/en-us/library/83zyeke9.aspx) pour être le même juste en réglant la (les) variable (s) sur "Nothing". Cela n'efface pas le tableau. –

1

redim arr (1,1,1,1) puis redim (z, x, y, v) à votre dimensions

Questions connexes