2008-09-04 100 views
40

如何创建空的一维字符串数组?VB.NET空字符串数组

+0

@Pacane请[阅读](http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their -titles)。 – 2013-06-11 14:05:32

回答

29

暗淡strEmpty(-1)作为字符串

+7

Upvote,因为它是正确的。但是,为了清晰起见,我更喜欢Dim提供的和strMmt支持的strEmpty()As String = New String(){}。然而,马克描述了两种不相同的技术......看到这个评论。 – 2010-08-18 12:56:18

+9

更新...我们发现以下内容相当于它的仪式较少: Dim myArray()= New String(){} – 2010-08-28 21:09:08

+7

这是我在生活中看到的前10种最丑陋的语法; =) – 2012-11-09 16:59:12

1

不知道为什么你会想,但C#的方式是

string[] newArray = new string[0]; 

我猜VB不会太不同了这一点。

如果你正在构建一个空数组,所以你可以用值后填充它,你真的应该考虑使用

List<string> 

并将其与转换到一个数组(如果你真的需要它作为一个数组)

newListOfString.ToArray(); 
6

喜欢的东西:

Dim myArray(9) as String 

会给你10字符串裁判的数组(每个指向Nothing)。

如果你不知道在声明时的大小,你可以声明一个String数组,像这样:

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() 

@马克

感谢您的指正。

0

仅供参考,小心ReDim -ing

它有时样的危险。像goto

6

阵列你通过创建昏暗S(O)作为字符串IS NOT EMPTY

在VB.Net,你在阵列中使用的下标是最后一个元素的索引。 VB.Net默认启动索引为0,所以你有一个已经有一个元素的数组。

您应该尝试使用System.Collections.Specialized.StringCollection或(更好)System.Collections.Generic.List(Of String)。它们与字符串数组几乎完全相同,只是它们对于添加和删除项目的加载更好。说实话:你很少创建一个空的字符串数组,而不想添加至少一个元素。

如果你真的想要一个空字符串数组,其声明如下:

Dim s As String() 

Dim t() As String 
35

VB是0-indexed in array declarations,所以seomthing像Dim myArray(10) as String给你元素。从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 
3

这样做的另一种方式:

Dim strings() As String = {} 

测试,这是一个空字符串数组:

MessageBox.Show("count: " + strings.Count.ToString) 

将显示一个消息框,指出“count:0”。

6

您不必包含两次字符串,也不必使用新建。
以下任一会工作...

Dim strings() as String = {} 
Dim strings as String() = {}