我声明了一个字符串数组,并将每个元素初始化为“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'也是非常隐含的。 –