2011-10-05 37 views
2

我聲明瞭一個字符串數組,並將每個元素初始化爲「5」。但是當我在For-Each之後用斷點調試時,我所有的數組成員都沒有任何內容。我在Visual Studio 2010上了嗎?如何在Visual Basic中聲明和訪問數組?

Dim words(999) As String 

For Each word As String In words 
    word = "5" 
Next 
+0

這個初始化什麼。迭代器返回一個包含數組中項目值的臨時字符串。既然你沒有放任何東西,沒有什麼可以回來的。您可能想閱讀[VB.Net中的數組](http://msdn.microsoft.com/zh-cn/library/wak0wfyt.aspx)以幫助您開始。我刪除了'microsoft','visual'和'basic'等無關標籤,因爲'VB.NET'自動錶示這些東西。 'Visual Studio'也是非常隱含的。 –

回答

3

你有什麼對讀取數組有好處,但不適合寫入它們。您的代碼轉換爲:

Create words array with 1000 elements 
For each index in the array 
    word = words(index) 
    word = "5" 
Next index 

在任何時候,它提出了背單詞到數組。該代碼丟失:

... 
    words(index) = word 
Next index 

你需要做的是:

Dim words(999) As String 

For index As Integer = 0 to words.Length - 1 
    words(index) = "5" 
Next 

編輯:針對下面的評論。

初始化數組後,可以使用For/Each循環來讀取元素。

For Each word As String in words 
    Console.WriteLine(word) 
Next 

這是一樣的:

For index As Integer = 0 To words.Length - 1 
    Console.WriteLine(words(index)) 
Next 
+0

這是否意味着我不能/不應該爲數組使用for-each? – brush200400

+0

你不能使用For/Each來初始化數組。對於/每個僅用於讀取數組。看到我編輯的答案。 –

1

你也可以這樣做:

Dim Words() As String = Enumerable.Repeat("5", 1000).ToArray()