VB.NET空string数组

我怎样才能创build一个空的一维string数组?

昏暗strEmpty(-1)作为string

在数组声明中 ,VB是0索引的 ,所以像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 myArray(9) as String 

会给你一个10个string引用的数组(每个指向Nothing)。

如果你不确定在声明时的大小,你可以像这样声明一个String数组:

 Dim myArray() as String 

然后,您可以稍后将它指向适当大小的string数组:

 ReDim myArray(9) as String 

ZombieSheep是正确的使用列表,如果你不知道总的大小,你需要dynamic填充它。 在VB.NET中,这将是:

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

然后从该列表中获取数组:

 myList.ToArray() 

@标记

感谢您的更正。

Dim s(0)创build的数组作为string 不是空的

在VB.Net中,您在数组中使用的下标是最后一个元素的索引。 默认情况下,VB.Net启动索引为0,所以你有一个已经有一个元素的数组。

你应该尝试使用System.Collections.Specialized.StringCollection或(甚至更好) System.Collections.Generic.List(Of String) 。 它们与string数组几乎完全相同,除了加载和删除项目的加载更好。 说实话:你很less创build一个string数组,而不想添加至less一个元素。

如果你真的想要一个空string数组,声明如下:

 Dim s As String() 

要么

 Dim t() As String 

您不必包含两次string,也不必使用新build。
以下任何一项都可以工作

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

另一种做法是:

 Dim strings() As String = {} 

testing它是一个空string数组:

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

将显示一个消息框,说“count:0”。

不知道为什么你想要,但C#的方式会

 string[] newArray = new string[0]; 

我猜VB和VB不会太相似。

如果你正在构build一个空的数组,所以你可以稍后使用值填充它,你真的应该考虑使用

 List<string> 

并将其转换为一个数组(如果你真的需要它作为一个数组)

 newListOfString.ToArray(); 

仅供参考,请小心使用ReDim -ing

有时候有点危险 像goto