VB.NET空string数组
我怎样才能创build一个空的一维string数组?
昏暗strEmpty(-1)作为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
就像是:
Dim myArray(9) as String
会给你一个10个string引用的数组(每个指向Nothing)。
如果你不确定在声明时的大小,你可以像这样声明一个String数组:
Dim myArray() as String
然后,您可以稍后将它指向适当大小的string数组:
ReDim myArray(9) as String
ZombieSheep是正确的使用列表,如果你不知道总的大小,你需要dynamic填充它。 在VB.NET中,这将是:
Dim myList as New List(Of String) myList.Add("foo") myList.Add("bar")
然后从该列表中获取数组:
myList.ToArray()
@标记
感谢您的更正。
由Dim s(0)创build的数组作为string 不是空的
在VB.Net中,您在数组中使用的下标是最后一个元素的索引。 默认情况下,VB.Net启动索引为0,所以你有一个已经有一个元素的数组。
你应该尝试使用System.Collections.Specialized.StringCollection
或(甚至更好) System.Collections.Generic.List(Of String)
。 它们与string数组几乎完全相同,除了加载和删除项目的加载更好。 说实话:你很less创build一个空string数组,而不想添加至less一个元素。
如果你真的想要一个空string数组,声明如下:
Dim s As String()
要么
Dim t() As String
您不必包含两次string,也不必使用新build。
以下任何一项都可以工作
Dim strings() as String = {} Dim strings as String() = {}
另一种做法是:
Dim strings() As String = {}
testing它是一个空string数组:
MessageBox.Show("count: " + strings.Count.ToString)
将显示一个消息框,说“count:0”。
不知道为什么你想要,但C#的方式会
string[] newArray = new string[0];
我猜VB和VB不会太相似。
如果你正在构build一个空的数组,所以你可以稍后使用值填充它,你真的应该考虑使用
List<string>
并将其转换为一个数组(如果你真的需要它作为一个数组)
newListOfString.ToArray();
仅供参考,请小心使用ReDim
-ing
有时候有点危险 像goto