如何创建一个空的一维字符串数组?
10 回答
VB在数组声明中是 0-indexed,所以 seomthing likeDim 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
暗淡 strEmpty(-1) 作为字符串
您创建的数组Dim s(0) As String
IS NOT EMPTY
在 VB.Net 中,您在数组中使用的下标是最后一个元素的索引。VB.Net 默认从 0 开始索引,所以你有一个已经有一个元素的数组。
您应该尝试使用System.Collections.Specialized.StringCollection
or (甚至更好) System.Collections.Generic.List(Of String)
。它们与字符串数组几乎相同,只是它们更适合添加和删除项目。老实说:您很少会创建一个空字符串数组而不希望向其中添加至少一个元素。
如果您真的想要一个空字符串数组,请像这样声明它:
Dim s As String()
或者
Dim t() As String
就像是:
Dim myArray(9) as String
会给你一个包含 10 个字符串引用的数组(每个都指向 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()
@标记
感谢您的指正。
您不必包含两次 String,也不必使用 New。
以下任何一项都可以工作...
Dim strings() as String = {}
Dim strings as String() = {}
另一种方法:
Dim strings() As String = {}
测试它是一个空字符串数组:
MessageBox.Show("count: " + strings.Count.ToString)
将显示一个消息框,上面写着“count: 0”。
有点冗长,但自我记录......
Dim strEmpty() As String = Enumerable.Empty(Of String).ToArray
不知道你为什么想要,但 C# 方式是
string[] newArray = new string[0];
我猜VB不会和这个有太大的不同。
如果您正在构建一个空数组以便稍后用值填充它,您真的应该考虑使用
List<string>
并将其转换为一个数组(如果你真的需要它作为一个数组)
newListOfString.ToArray();
暗淡数组 As String() = Array.Empty(Of String)
试试这个 Dim Arraystr() as String ={}