Jaki jest najlepszy sposób na wyczyszczenie tablicy łańcuchów?Jaki jest najlepszy sposób wyczyszczenia tablicy łańcuchów?
Odpowiedz
Niewłaściwy sposób:
myArray = Nothing
Tylko ustawia zmienną wskazując na tablicy do niczego, ale w rzeczywistości nie wyczyścić tablicę. Wszystkie pozostałe zmienne wskazujące na tę samą tablicę będą nadal zawierać tę wartość. Dlatego konieczne jest wyczyszczenie tablicy.
Correct Way
Array.Clear(myArray,0,myArray.Length)
zależności od tego, co chcesz:
- Przypisywanie Nothing (null)
- Przypisywanie nowy (pusty) tablicę
- Array.Clear
Ostatnie może być najwolniejsze, ale tylko opcja, jeśli nie chcesz nowej tablicy.
Jeśli chcesz zrobić rzeczy takie jak jasne, prawdopodobnie wolisz kolekcję niż List(Of String)
niż tablicę.
Dobrze, ale istniejąca tablica ... nie można podzielić ciągu na listę ciągów w jednym poleceniu? – spacemonkeys
Nie, ale można wywołać .ToList() na wynik String.Split. –
Lub List.AddRange() –
I oczywiście istnieje sposób VB za pomocą słowa kluczowego Erase:
Dim arr() as String = {"a","b","c"}
Erase arr
+1 dla VBism, ale niestety "Erase" jest [udokumentowane] (https://msdn.microsoft.com/en-us/library/83zyeke9.aspx) być taki sam jako ustawienie zmiennej "nic". Nie usuwa tablicy. –
ReDim arr (1,1,1,1) a następnie Redim (Z, X, Y, v) do swoich wymiary
Wprowadzono drobną korektę w kodzie. ;-) – Cerebrus
* Powolna runda aplauzu na cerebrus *, który czyni go bardziej zrozumiałym :) – TheTXI
To nie oczyszcza tablicy - ustawia zmienną na Nic. Cokolwiek innego odnoszące się do tej samej tablicy nadal będzie wyświetlać istniejące wartości. –