我聲明瞭一個字符串數組,並將每個元素初始化爲「5」。但是當我在For-Each之後用斷點調試時,我所有的數組成員都沒有任何內容。我在Visual Studio 2010上了嗎?如何在Visual Basic中聲明和訪問數組?
Dim words(999) As String
For Each word As String In words
word = "5"
Next
我聲明瞭一個字符串數組,並將每個元素初始化爲「5」。但是當我在For-Each之後用斷點調試時,我所有的數組成員都沒有任何內容。我在Visual Studio 2010上了嗎?如何在Visual Basic中聲明和訪問數組?
Dim words(999) As String
For Each word As String In words
word = "5"
Next
你有什麼對讀取數組有好處,但不適合寫入它們。您的代碼轉換爲:
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
這是否意味着我不能/不應該爲數組使用for-each? – brush200400
你不能使用For/Each來初始化數組。對於/每個僅用於讀取數組。看到我編輯的答案。 –
你也可以這樣做:
Dim Words() As String = Enumerable.Repeat("5", 1000).ToArray()
這個初始化什麼。迭代器返回一個包含數組中項目值的臨時字符串。既然你沒有放任何東西,沒有什麼可以回來的。您可能想閱讀[VB.Net中的數組](http://msdn.microsoft.com/zh-cn/library/wak0wfyt.aspx)以幫助您開始。我刪除了'microsoft','visual'和'basic'等無關標籤,因爲'VB.NET'自動錶示這些東西。 'Visual Studio'也是非常隱含的。 –