题
我怎么可以创建一个空一个维string array?
解决方案
昏暗的strEmpty(-1)As String
其他提示
VB 0-索引中列声明, ,因此seomthing喜欢 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 strings() as String = {}
Dim strings as String() = {}
这阵你创造的 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
是这样的:
Dim myArray(9) as String
会给你的一系列10字符串引用(每个指向什么).
如果你不知道的尺寸在宣言》时,可以声明串阵这样的:
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 strings() As String = {}
测试,它是一个空string array:
MessageBox.Show("count: " + strings.Count.ToString)
会显示的消息框中说:"数:0".
一个小小的冗长的,但自我的记录...
Dim strEmpty() As String = Enumerable.Empty(Of String).ToArray
不知道你为什么想,但是C#方法就是
string[] newArray = new string[0];
我猜这VB不会是太不同。
如果你建立一个空阵列,所以你可以填充的价值以后,你真的应该考虑使用
List<string>
并转换成一系列(如果你真的需要它作为一个阵)与
newListOfString.ToArray();
试试这个 昏暗的Arraystr()as String={}