Je kent al arrays: een vaste reeks elementen van hetzelfde type. Het nadeel van een array is dat je bij het aanmaken meteen moet zeggen hoe groot die wordt. Eens aangemaakt, kan de grootte niet meer veranderen.
// Array: grootte is meteen vast (5 elementen)
string[] namen = new string[5];
Wat als je niet op voorhand weet hoeveel elementen je nodig hebt? Stel: je maakt een winkelmandje. De klant kan 1, 3 of 20 producten toevoegen. Je kan onmogelijk op voorhand de grootte bepalen.
De oplossing: een List<T>.
Een List<T> is een dynamische verzameling van elementen. Dynamisch betekent dat de lijst automatisch groeit als je elementen toevoegt, en krimpt als je elementen verwijdert. Je hoeft de grootte niet op voorhand te kennen.
De T tussen de punthaken is het type van de elementen in de lijst. Je vult dat zelf in:
| Syntax | Betekenis |
|---|---|
List<string> |
een lijst van teksten |
List<int> |
een lijst van gehele getallen |
List<double> |
een lijst van kommagetallen |
List<bool> |
een lijst van booleans |
Namespace
Om een
Listte gebruiken moet je bovenaan je code de volgende regel zetten:using System.Collections.Generic;
Een lege List<string> declareer je zo:
using System.Collections.Generic;
List<string> namen = new List<string>();
De lijst is nu leeg. Je kan er later elementen aan toevoegen.
Je kan een lijst ook meteen vullen met elementen bij het aanmaken:
List<string> namen = new List<string>() { "Ali", "Fatima", "Lucas" };
De lijst bevat nu 3 elementen: "Ali", "Fatima" en "Lucas".
Een ander voorbeeld met getallen:
List<int> leeftijden = new List<int>() { 17, 18, 16, 17 };
| Array | List | |
|---|---|---|
| Grootte | Vaste grootte | Dynamisch (groeit en krimpt) |
| Declaratie | string[] namen = new string[3]; |
List<string> namen = new List<string>(); |
| Type-safe | Ja | Ja |
| Elementen toevoegen | Niet mogelijk na aanmaak | Altijd mogelijk |
Onthoud
Gebruik een array als je op voorhand weet hoeveel elementen je hebt en dat aantal nooit verandert. Gebruik een List als het aantal elementen kan veranderen.
List<T> is een dynamische, type-safe verzameling van elementen.List<string> mijnLijst = new List<string>();List<int> getallen = new List<int>() { 1, 2, 3 };using System.Collections.Generic; toe bovenaan je code.