清除字符串数组的最佳方法是什么?

时间:2009-04-03 13:19:57

标签: vb.net arrays

清除字符串数组的最佳方法是什么?

7 个答案:

答案 0 :(得分:28)

错误的方式:

myArray = Nothing 

仅将指向数组的变量设置为空,但实际上并未清除数组。指向同一数组的任何其他变量仍将保留该值。因此有必要清除阵列。

正确的方式

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

答案 1 :(得分:6)

当然还有使用Erase关键字的VB方式:

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

答案 2 :(得分:2)

根据您的需要:

  • 分配Nothing(null)
  • 分配一个新的(空)数组
  • Array.Clear

最后可能是最慢的,但如果你不想要一个新阵列,那么这只是选项。

答案 3 :(得分:2)

如果你需要做清楚的事情,你可能需要像List(Of String)这样的集合而不是数组。

答案 4 :(得分:1)

redim arr(1,1,1,1) 然后 redim(z,x,y,v)到你的尺寸

答案 5 :(得分:0)

如果您需要使用空字符串或不等于Nothing / Null的其他值重新初始化,则可以使用扩展方法进一步进行初始化:

Option Strict On : Option Explicit On : Option Infer On
...
Public Delegate Sub ArrayForAllDelegate(Of T)(ByRef message As T)
<Extension>
Public Function ForAll(Of T)(ByRef self As T(), f As ArrayForAllDelegate(Of T)) As T()
    Dim i = 0
    While i < self.Length
        f(self(i))
        i += 1
    End While
    Return self
End Function

然后输入您的初始化代码:

Dim a = New String(3 - 1) {"a", "b", "c"}
...
a.ForAll(Sub(ByRef el) el = "") 'reinitialize the array with actual empty strings

答案 6 :(得分:0)

这是我用来清除字符串数组内容的简单调用:

def h[F[_], A](v: F[A]) = ???

然后只需调用:

Public Sub ClearArray(ByRef StrArray As String())
    For iK As Int16 = 0 To StrArray.Length - 1
        StrArray(iK) = ""
    Next
End Sub