2010-09-26 52 views

回答

31

您試過Array.Clear

string[] foo = ...; 
Array.Clear(foo, 0, foo.Length); 

注意這不會改變數組的大小 - 什麼也不會做。相反,它會將每個元素設置爲null。

如果你需要的東西,可以實際上改變大小,使用List<string>代替:

List<string> names = new List<string> { "Jon", "Holly", "Tom" }; 
names.Clear(); // After this, names will be genuinely empty (Count==0) 
+0

謝謝!我無法理解爲什麼我無法在字符串方法下找到明確的。答案當然是,它是一種數組方法。 – user404651 2010-09-27 09:46:55

+0

我現在應該知道這一點,但如果你只是將字符串數組設置爲null,那麼釋放內存還是需要調用'Array.Clear'? – Coops 2013-08-15 08:25:01

+1

@CodeBlend:都沒有。您不要將數組設置爲'null' - 將*變量*設置爲null。當沒有對數組的實時引用時,它將*符合*用於垃圾回收(但不會立即GC'd)。如果數組中有元素被*數組引用,那麼他們也有資格進行垃圾回收。 – 2013-08-15 08:57:50

9
Array.Clear(theArray, 0, theArray.Length); 
+0

不會編譯 - 清除不是實例方法,也不是無參數。 – 2010-09-26 12:46:55

+0

@Jon Skeet:太晚了,我已經更新了。 ;) – Guffa 2010-09-26 12:47:35

2

這要看情況(如:什麼是陣列中)但最好的方法通常是創建一個新的。刪除所有對舊的引用。

MyType[] array = ... 
.... 

array = new MyType[size]; 
-1

string [] foo;

foo = string [「」];

1

我想你也可以逃避這個例子: SearchTerm = new string [] {};

-1

怎麼樣

string[] foo; 
foo = null;