我怎么可以创建一个空一个维string array?

有帮助吗?

解决方案

昏暗的strEmpty(-1)As String

其他提示

VB 0-索引中列声明, ,因此seomthing喜欢 Dim myArray(10) as String 给你 11 元素。这是一个常见的错误的翻译从C语言。

因此,对于一个空阵列,以下会的工作:

Dim str(-1) as String ' -1 + 1 = 0, so this has 0 elements
Dim str() as String = New String() { } ' implicit size, initialized to empty

你没有包括串两次,你不需要使用新的。
下列会的工作。

Dim strings() as String = {}
Dim strings as String() = {}

这阵你创造的 Dim s(0) As String 不是空的

在VB.Net,标使用中的阵列的索引的最后一个元素。VB.Net 默认情况下开始编制索引在0,所以你有一个数组,已经有一个元素。

你应该尝试利用 System.Collections.Specialized.StringCollection 或者(甚至更好) System.Collections.Generic.List(Of String).他们数量几乎相同的事,作为一系列的串,除了他们的负荷更好地用于添加和去除的项目。让我们实话实说:你会很少创建一个 串阵不想加入 至少 一个元素。

如果你真的想要一个空串阵列,宣布它是这样的:

Dim s As String()

Dim t() As String

是这样的:

Dim myArray(9) as String

会给你的一系列10字符串引用(每个指向什么).

如果你不知道的尺寸在宣言》时,可以声明串阵这样的:

Dim myArray() as String

然后你可以指出它在一个正常尺寸的阵列的串后来:

ReDim myArray(9) as String

ZombieSheep是对使用名单,如果你不知道的总规模以及需要动态填充。在VB.NET 这将是:

Dim myList as New List(Of String)
myList.Add("foo")
myList.Add("bar")

然后,获得一系列从名单:

myList.ToArray()

@标记

感谢您的修正。

另一种方式这样做:

Dim strings() As String = {}

测试,它是一个空string array:

MessageBox.Show("count: " + strings.Count.ToString)

会显示的消息框中说:"数:0".

一个小小的冗长的,但自我的记录...

Dim strEmpty() As String = Enumerable.Empty(Of String).ToArray

不知道你为什么想,但是C#方法就是

string[] newArray = new string[0];

我猜这VB不会是太不同。

如果你建立一个空阵列,所以你可以填充的价值以后,你真的应该考虑使用

List<string>

并转换成一系列(如果你真的需要它作为一个阵)与

newListOfString.ToArray();

试试这个 昏暗的Arraystr()as String={}

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top