2011-10-05 69 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()