我该如何创建一个空的一维字符串数组?
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 strEmpty(-1) As String
Dim s$(-1)
或 Dim s$() = {}
- SlaiDim s(0) As String
不是空的。System.Collections.Specialized.StringCollection
或者(更好的选择)System.Collections.Generic.List(Of String)
。它们基本上与字符串数组相同,但对于添加和删除项更加便利。 而且,说实话:您很少会创建一个 空 字符串数组而不想向其中添加 至少 一个元素。Dim s As String()
或者
Dim t() As String
Dim strings() as String = {}
Dim strings as String() = {}
类似于:
Dim myArray(9) as String
这将为您提供一个包含10个字符串引用的数组(每个引用都指向“Nothing”)。
如果您在声明时不确定大小,可以像这样声明一个字符串数组:
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()
@Mark
感谢您的纠正。
Dim strings() As String = {}
测试一个空字符串数组:
MessageBox.Show("count: " + strings.Count.ToString)
显示一个弹框,上面写着“计数:0”。
Dim strEmpty() As String = Enumerable.Empty(Of String).ToArray
string[] newArray = new string[0];
我猜VB不会与此有太大的不同。
如果您正在构建一个空数组,以便稍后填充它的值,那么您真的应该考虑使用
List<string>
将其转换为数组(如果您确实需要它作为数组)
newListOfString.ToArray();
Dim array As String() = Array.Empty(Of String)
我知道这是一个旧的线程,但创建一个空的一维字符串数组的另一种方法是使用 Array.Empty<T>
方法。
E.g.,
VB.NET
Dim emptyStringArray() As String = Array.Empty(Of String)()
C#
string[] emptyStringArray = Array.Empty<string>()