2008-09-04 148 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() = {}