Een array heeft een vaste lengte: bij het aanmaken leg je vast hoeveel
elementen er in passen, en daarna kan dat niet meer veranderen. Dat is lastig
zodra je op voorhand niet weet hoeveel waarden je gaat bijhouden. Daarvoor heeft
C# de lijst (List).
Een
Listis een dynamische array: een lijst die automatisch in grootte wordt aangepast wanneer dat nodig is. Je hoeft de lengte dus niet op voorhand te kennen.
Een lijst heeft kant-en-klare methodes om elementen efficiënt toe te voegen, te verwijderen, te zoeken en aan te passen. Net als bij een array kun je elk element ook rechtstreeks benaderen via zijn index.
Bij het aanmaken zeg je tussen punthaken < > welk type elementen de lijst
zal bevatten: List<int> voor gehele getallen, List<string> voor tekst, enzovoort.
List<int> mijnLijst = new List<int>();
List<string> namen = new List<string>();
De lijst is dan nog leeg: er zitten nog geen elementen in.
| Methode | Beschrijving | Voorbeeld |
|---|---|---|
lijst.Add(element) | Voegt een element toe op het einde van de lijst | mijnLijst.Add(1); |
lijst.Remove(element) | Verwijdert het eerste element dat gelijk is aan de meegegeven waarde | mijnLijst.Remove(1); |
lijst.RemoveAt(index) | Verwijdert het element op een bepaalde plaats (index) in de lijst | mijnLijst.RemoveAt(0); |
lijst[index] | Toegang tot een element via zijn index (net als bij een array) | int eerste = mijnLijst[0]; |
lijst.Contains(element) | Geeft true terug als het element in de lijst zit, anders false | bool bevat = mijnLijst.Contains(3); |
Removegeeft eenboolterug:trueals er effectief een element verwijderd werd, enfalseals de waarde niet in de lijst zat. Zo kun je meteen controleren of het verwijderen gelukt is.
CountDe eigenschap Count geeft het aantal elementen in de lijst terug. Merk op:
geen ronde haakjes, want het is een eigenschap en geen methode.
List<int> mijnLijst = new List<int>();
mijnLijst.Add(1);
mijnLijst.Add(2);
mijnLijst.Add(3);
int aantalElementen = mijnLijst.Count;
Console.WriteLine("Aantal elementen in de lijst: " + aantalElementen);
Aantal elementen in de lijst: 3
foreachWil je alle elementen één voor één afgaan, dan gebruik je een foreach-lus,
precies zoals bij een array:
foreach (int item in mijnLijst)
{
Console.WriteLine(item);
}
De lus loopt vanzelf over alle elementen, van het eerste tot het laatste. Je hoeft zelf geen index of teller bij te houden.
In de volgende oefening beheer je zelf een lijst met de namen van studenten in een klas.