VB6 - 定义字符串数组

15

我需要使用VB6,但在一些基本任务上遇到了困难。

例如在C#中定义数组:

string[] s = {"a", "b", "c", "d" };

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

Dim s(0 To 3) As String
s(0) = "a"
s(1) = "b"
s(2) = "c"
s(3) = "d"

在VB6中,除了我上面举的例子,还有类似C#的定义数组的更有效率的方法吗?

3个回答

19
Dim s
s = Array("a", "b", "c", "d")

足够简单,出乎意料的是我在任何地方都找不到这个哈哈。 - Loren Kuich
11
需要强调的是这是一个包含“变量”而非“字符串”的数组。 - MarkJ

11

如果您想要一个字符串数组而不是变体数组,则可以使用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")

非常有趣 - symbiont

11

这里有另外一个可能性:

Dim S() As String

S = Split("a|b|c|d", "|")

这并不是非常高效的。Split()函数返回一个包含String数组的变量,然后将整个数组复制到一个新的String数组中。 - Mark Bertenshaw
2
它不是表现非常差的程序。如果你需要在紧密循环中重新创建数组,你可以在循环之外用这种方式创建一个数组,然后在每次迭代中将其复制到第二个数组变量中。 - Bob77

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接