VB6 - 定义字符串数组

Lor*_*ich 10 arrays vb6 syntax

我正在做一个项目,我需要使用VB6.我正在努力完成一些基本任务,部分原因是(我认为)缺少文档,部分原因是我通常使用基于C语法的语言.

当我在C#中定义一个数组时,它通常如下:

string[] s = {"a", "b", "c", "d" };
Run Code Online (Sandbox Code Playgroud)

我想在VB6中这样做.

但是在VB6中,我一直这样做:

Dim s(0 To 3) As String
s(0) = "a"
s(1) = "b"
s(2) = "c"
s(3) = "d"
Run Code Online (Sandbox Code Playgroud)

有没有比上面举例说明的更有效的方法在VB6中定义数组?一种类似于C#方法的方法?

And*_*son 11

Dim s
s = Array("a", "b", "c", "d")
Run Code Online (Sandbox Code Playgroud)

  • 应该强调的是,这是*Variants*的数组*不是*Strings* (7认同)

Bob*_*b77 9

这是另一种可能性:

Dim S() As String

S = Split("a|b|c|d", "|")
Run Code Online (Sandbox Code Playgroud)

  • 这并不是一个令人惊讶的糟糕表现。如果您需要在紧密循环内重新创建数组,您可以在循环外以这种方式创建一个数组,然后在每次迭代时将其复制到循环内的第二个数组变量中。 (2认同)

Ale*_* K. 8

如果你想要一个String数组而不是Variant数组Array()会产生;

Function ArrayString(ParamArray tokens()) As String()
    ReDim arr(UBound(tokens)) As String
    Dim i As Long
    For i = 0 To UBound(tokens)
        arr(i) = tokens(i)
    Next
    ArrayString = arr
End Function

...

Dim a() As String
a = ArrayString("foo", "bar", ..., "qux")
Run Code Online (Sandbox Code Playgroud)