VB.NET空字符串数组

时间:2008-09-04 20:35:55

标签: .net arrays vb.net

如何创建空的一维字符串数组?

10 个答案:

答案 0 :(得分:38)

VB为0-indexed in array declarations,因此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

答案 1 :(得分:33)

Dim strEmpty(-1)As String

答案 2 :(得分:8)

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

答案 3 :(得分:8)

您不必包含两次String,也不必使用New。
以下任何一种都可以工作......

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

答案 4 :(得分:7)

类似的东西:

Dim myArray(9) as String

会给你一个包含10个String引用的数组(每个引用都指向Nothing)。

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

Dim myArray() as String

然后你可以将它指向一个大小合适的字符串数组:

ReDim myArray(9) as String

ZombieSheep如果您不知道总大小并且需要动态填充它,那么使用List是正确的。在VB.NET中将是:

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

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

myList.ToArray()

@马克

感谢您的纠正。

答案 5 :(得分:4)

另一种方法:

Dim strings() As String = {}

测试它是一个空字符串数组:

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

将显示一个消息框,上面写着" count:0"。

答案 6 :(得分:2)

有点冗长,但是可以自我记录...

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

答案 7 :(得分:1)

不确定你为什么要这样,但C#的方式是

string[] newArray = new string[0];

我猜测VB不会与此太不相似。

如果您正在构建一个空数组,以便稍后可以使用值填充它,那么您真的应该考虑使用

List<string>

并使用

将其转换为数组(如果您确实需要它作为数组)
newListOfString.ToArray();

答案 8 :(得分:0)

试试这个 Dim Arraystr()as String = {}

答案 9 :(得分:-1)

将昏暗数组作为String()= Array.Empty(Of String)