如何创建空的一维字符串数组?
答案 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)