Archief - VB.net: Probleem i.v.m. nested list (list of list of string)

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Tristan

Legacy Member
Hey,

Ik zit met een probleem in onderstaande code. ( kheb een ander projectje aangemaakt met dezelfde code erin, maar wrs wat eenvoudiger om de bedoeling te snappen )
Code:
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim obib As New List(Of List(Of String))
        'De bib bevat 4 boeken, waarvan elk boek, de 4 hoofdstukken kunnen worden opgevraagd.
        For i = 0 To 3
            obib(i).Add("Hoofdstuk 1")
            obib(i).Add("Hoofdstuk 2")
            obib(i).Add("Hoofdstuk 3")
            obib(i).Add("Hoofdstuk 4")
        Next
    End Sub
Kort gezegd, wil ik dus van een lijst boeken in een bibliotheek, de 4 namen van de 4 eerste hoofdstukken van dat boek kunnen bijhouden. Voor de eenvoud heb ik ze 'hoofdstuk 1' enz genoemd. Dus de bib bestaat uit een lijst van boeken die een lijst van hoofdstukken bevat. Echter, als ik de code wil uitvoeren, krijg ik een error:
Code:
Argument OutOfRangeException was unhandled.
De index valt buiten het bereik. Deze mag niet negatief zijn en moet kleiner zijn dan de grootte van de verzameling. Parameternaam: index

En een printscreentje van de error

Ik heb echt geen flauw benul waarom ie die error geeft, als iemand me het kan uitleggen en me vertellen waar de fout vandaan komt, bedankt!

Parnakra

Legacy Member
Je moet elk List-object binnen je obib-list ook aanmaken voor je er iets aan kan toevoegen.

Geen idee wat dat in (afgrijselijke) VB-syntax is, maar 't zal hier wel op lijken:
Code:
For i = 0 To 3
                        obib.Add(new List(Of String))
            obib(i).Add( //... blablabla
                   //ololol indentation
    //FU leesbaarheid
Next

Tristan

Legacy Member
Parnakra zei:
Je moet elk List-object binnen je obib-list ook aanmaken voor je er iets aan kan toevoegen.

Geen idee wat dat in (afgrijselijke) VB-syntax is, maar 't zal hier wel op lijken:
Code:
For i = 0 To 3
                        obib.Add(new List(Of String))
            obib(i).Add( //... blablabla
                   //ololol indentation
    //FU leesbaarheid
Next

Oh, bedankt! Zal ik dadelijk es uitproberen ;)

Tristan

Legacy Member
Super! Bedankt voor je hulp :) Stomme fout, maar zolang er we eruit leren ;)

Voor de geïnteresseerden, dit werkt wél:
Code:
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim obib As New List(Of List(Of String))
        'De bib bevat 4 boeken, waarvan elk boek, de 4 hoofdstukken kunnen worden opgevraagd.
        For i = 0 To 3
            obib.Add(New List(Of String))
            obib(i).Add("Hoofdstuk 1")
            obib(i).Add("Hoofdstuk 2")
            obib(i).Add("Hoofdstuk 3")
            obib(i).Add("Hoofdstuk 4")
        Next
    End Sub
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan