2009-04-03 30 views

Trả lời

20

cách sai:

myArray = Nothing 

Chỉ đặt trỏ biến đến các mảng không có gì, nhưng không thực sự rõ ràng mảng. Bất kỳ biến nào khác trỏ đến cùng một mảng sẽ vẫn giữ giá trị. Vì vậy, nó là cần thiết để xóa mảng.

Đúng Way

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

Thực hiện một chỉnh sửa nhỏ trong mã. ;-) – Cerebrus

+0

* Vòng vỗ tay chậm cho cerebrus * làm cho nó dễ hiểu hơn :) – TheTXI

+3

Điều đó không xóa mảng - nó đặt biến thành Không có gì. Bất cứ điều gì khác đề cập đến cùng một mảng sẽ vẫn thấy các giá trị hiện có. –

2

Tùy thuộc những gì bạn muốn:

  • Gán Nothing (null)
  • Gán một (trống) mảng mới
  • Array.Clear

Lần cuối có thể chậm nhất, nhưng chỉ nếu bạn không muốn một mảng mới.

2

Nếu bạn cần làm những việc như rõ ràng, bạn có thể muốn một bộ sưu tập như List(Of String) thay vì một mảng.

+0

Điểm tốt, nhưng mảng hiện tại ... không thể chia chuỗi thành danh sách chuỗi trong một lệnh có thể bạn? – spacemonkeys

+0

Không, nhưng bạn có thể gọi .ToList() trên kết quả của String.Split. –

+0

Hoặc List.AddRange() –

6

Và tất nhiên có cách VB sử dụng từ khóa Erase:

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

+1 cho VBism, nhưng, thật không may, 'Erase' là [tài liệu] (https://msdn.microsoft.com/en-us/library/83zyeke9.aspx) giống nhau chỉ cần thiết lập biến (s) thành 'Nothing'. Nó không xóa mảng. –

1

ReDim arr (1,1,1,1) và sau đó ReDim (z, x, y, v) của bạn kích thước

Các vấn đề liên quan