Primero que nada, las preguntas sorbe VB.NET van en el subforo de programación .NET, este foro se supone que es para preguntas de VB6. Aparte, si hay una próxima vez por favor intenta tener en consideración que para ayudarte nos sería mucho más util y versatil que pongas el código (y mencionar el tipo de exception y el mensaje de error como has hecho, claro está, y ya si nos pones el stacktrace pues mejor que mejor), ya que con una imagen no podemos testear ningún código. En este caso da igual por que se ve claramente el fallo, pero en general...
Lo que menos entiendo es que me salta ahi la excepcion pero no mas arriba cuando muestro en un MsgBox el valor de ese array en la misma posicion cero
Date cuenta, eso es el mayor indicativo de que el problema no es con el array, sino con la colección de tipo
List.
Me estoy volviendo loco y no se que hacer para poder hacer lo que quiero sin que me salga esa excepcion
Intenta comprender el mensaje de error, te está indicando cual es el fallo: no existe un índice o posición "0" en tu lista. Dicho de otro modo: no has añadido ningún elemento a la lista, está vacía, el tamaño de la colección es cero.
No puedes esperar hacer algo como ' lista(1000) = "hello world" ' y que por arte de magia se generen 1.000 elementos vacíos en la lista y el elemento 1.001 con el valor "Hello World"... no tendría sentido, ¿verdad?. Una colección genérica de tipo
List es practicamente un array de tamaño dinámico, pero eso no significa que puedas añadir elementos usando el
indexer...
...debes usar el método
List.Add() o
List.AddRange() para añadir nuevos elementos a la colección, y luego entonces si quieres puedes usar el indexer de la colección para leer o modificar un elemento
existente.
Ejemplo:
Dim lista As New List(Of String)
' Añadir nuevo elemento:
lista.Add(String.Empty)
' Modificar elemento existente en el índice 0:
lista(0) = "Hello World"
PD: para micro-optimizar el código quizás te convendría utilizar el tipo
StringCollection en vez de
List(Of String). depende de los métodos expuestos en el tipo
List que realmente necesites usar.
Saludos