VB.NET空字符串数组

时间:2020-03-05 18:47:52  来源:igfitidea点击:

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

解决方案

回答

不知道为什么要这么做,但是Cway是

string[] newArray = new string[0];

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

如果我们要构建一个空数组,以便以后可以使用值填充它,那么我们确实应该考虑使用

List<string>

并将其转换为数组(如果我们真的需要作为数组)

newListOfString.ToArray();

回答

就像是:

Dim myArray(9) as String

将为我们提供10个String引用的数组(每个都指向Nothing)。

如果不确定声明时的大小,可以声明一个String数组,如下所示:

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 strEmpty(-1)作为字符串

回答

我们通过Dim s(0)作为字符串创建的数组不是空的

在VB.Net中,数组中使用的下标是最后一个元素的索引。默认情况下,VB.Net从0开始索引,因此我们有一个已经具有一个元素的数组。

相反,我们应该尝试使用System.Collections.Specialized.StringCollection或者(甚至更好)System.Collections.Generic.List(Of String)。它们的作用与字符串数组几乎相同,不同之处在于它们在加载和删除项目时效果更好。老实说:我们很少会在不希望向其添加至少一个元素的情况下创建一个空字符串数组。

如果我们确实想要一个空的字符串数组,请这样声明:

Dim s As String()

或者

Dim t() As 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