2013-03-15 2 views
1

Почему я продолжаю получать эту ошибку: индекс находился за пределами массива. Пожалуйста помоги. Спасибо.Индекс находился за пределами массива - VB2008

Dim list As New ListBox 
Dim dirsize As Integer 
Dim a As Integer 
Dim container(0) As String 

Dim counter As System.Collections.ObjectModel.ReadOnlyCollection(Of String) 
counter = My.Computer.FileSystem.GetFiles("C:\myfolder") 
dirsize = counter.Count 

For a = 0 To dirsize 

    container(a) = a + 1 
    lstItems.Items.Add(container(a)) 

Next 
+0

Для а = 0 Для DirSize - 1 – Jaxedin

+0

продолжает получать ту же ошибку – mmr

+0

ошибка находится на контейнере (а) = а + 1 или в течение? – Jaxedin

ответ

1

В основном container имеет только один элемент, который вы затемнение в начале вашего суб. Вы никогда не изменяете размер контейнера, поэтому, если dirsize - это что-то еще, кроме 0, вы получите эту ошибку.

Вы должны сделать что-то вроде:

Dim list As New ListBox 
Dim dirsize As Integer 
Dim a As Integer 
Dim container() As String 

Dim counter As System.Collections.ObjectModel.ReadOnlyCollection(Of String) 
counter = My.Computer.FileSystem.GetFiles("C:\myfolder") 
dirsize = counter.Count 

**ReDIm container(dirsize)** 
For a = 0 To dirsize 

    container(a) = a + 1 
    lstItems.Items.Add(container(a)) 

Next 
Смежные вопросы