TOC

This article has been localized into Dutch by the community.

Verzamelingen:

Arrays

Arrays zijn verzamelingen van items, bijvoorbeeld strings. Je kan ze gebruiken om verschillende items te verzamelen in één groep en er dan verschillende zaken mee doen zoals bijvoorbeeld sorteren. Daarnaast zijn er meerdere methoden binnen het framework die werken met arrays, om het mogelijk te maken om meerdere zaken gelijktijdig te verwerken in plaats van een. Het is dus belangrijk om toch iets te weten over arrays.

Arrays worden op dezelfde manier gedeclareerd als variabelen, maar dan met een paar haakjes [] na het data type. Je ziet dit hier:

string[] names;

Je moet de array instantiëren alvorens je hem kan gebruiken, dit doe je als volgt:

string[] names = new string[2];

Het getal (2) is de grootte van de array, het aantal items dat we kunnen toevoegen aan de array dus. Items in een array steken is ook zeer makkelijk:

names[0] = "John Doe";

Waarom gebruiken we hier 0? Net zoals bij vele andere dingen in de wereld van programmeren begint het tellen bij 0 en niet bij 1. De index van het eerste item is dus 0, dat van het tweede 1, enzovoort. Probeer dit altijd in gedachten te houden bij het opvullen van een array met items, want als je teveel items in een array probeert te stoppen krijg je een foutmelding. Als je kijkt naar hoe we de array initialiseren kan je er misschien van uitgaan dat we item, 0, 1 en 2 in de array kunnen steken, maar dat is dus één item teveel en dan zal je dus een foutmelding krijgen. We bespreken foutmeldingen later nog in detail.

In een voorgaand hoofdstuk hadden we het over lussen, en deze werken heel goed samen met arrays. De meest gebruikte manier om data uit een array te halen is het gebruiken van een lus om door de array te gaan en dan iets uit te voeren met elke waarde. Laat ons de array uit het vorige voorbeeld wat uitbreiden:

using System;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    string[] names = new string[2];

    names[0] = "John Doe";
    names[1] = "Jane Doe";

    foreach(string s in names)
Console.WriteLine(s);

    Console.ReadLine();
}
    }
}

We gebruiken de foreach lus, omdat het de makkelijkste is om te gebruiken in dit geval. We hadden natuurlijk ook de andere types lussen kunnen gebruiken. De for lus werkt ook goed samen met arrays, zoals je hier ziet:

for(int i = 0; i < names.Length; i++)
    Console.WriteLine("Item number " + i + ": " + names[i]);

We gebruiken de Length eigenschap van de array om te zien hoeveel items in de array zitten en hoeveel keer we dus door de lus moeten lopen. Dan gebruiken we de counter (i) om ons te vertellen waar we in het process zitten en ook om het corresponderende item uit de array te halen. Je ziet dat we zowel bij het inputten van data in een array als bij het uitlezen van data uit een array een cijfer gebruiken, dit noemen we de indexer en deze duidt de positie van het item binnen de array aan.

Zoals ik daarnet reeds vermeld heb kan je een array gebruiken om waarden te sorteren. De Array klasse bevat een resem aan methoden om te werken met arrays. In het volgende voorbeeld gebruiken we cijfers in plaats van strings, gewoon om een iets anders te proberen, maar we hadden dit evengoed met strings kunnen doen. Je ziet ook een andere manier om items in een array te steken die veel makkelijker is als je een klein aantal voorgedefinieerde items hebt die je in een array wilt steken.

int[] numbers = new int[5] { 4, 3, 8, 0, 5 };

Met één regel code hebben we een array aangemaakt waar 5 items in kunnen, en deze opgevuld met 5 integers. Een extra voordeel hier is dat de compiler controleert of je niet te veel items in de array probeert te steken. Als je nog een nummer toevoegt zal je zien dat de compiler hierover begint te klagen.

Je kan het zelfs nog korter, op deze manier:

int[] numbers = { 4, 3, 8, 0, 5 };

Dit is zeer kort en je hoeft zelfs geen grootte voor de array op te geven. Toch raad ik aan om de eerste manier te gebruiken omdat dit later veel beter leesbaar is.

Laat ons proberen om de array te sorteren:

using System;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    int[] numbers = { 4, 3, 8, 0, 5 };

    Array.Sort(numbers);

    foreach(int i in numbers)
Console.WriteLine(i);

    Console.ReadLine();
}
    }
}

Het enige nieuwe hier is het Array.Sort commando. Je kan verschillende parameters meegeven met dit commando om op verschillende manieren te sorteren. Maar in ons geval willen we gewoon de getallen in onze array sorteren. Zoals je kan zien in het resultaat werd onze array gesorteerd. De Array klasse heeft ook nog andere methoden, zoals bijvoorbeeld de Reverse() methode. Je kan in de documentatie terugvinden wat alle eigenschappen zijn van de Array klasse.

De arrays die we in dit voorbeeld gebruikt hebben hadden slechts 1 dimensie. Arrays in C# kunnen multidimensioneel zijn, waarnaar soms verwezen wordt als arrays binnen arrays. Multidimensionele arrays heb je in 2 soorten in C#. Rechthoekige en jagged arrays. In een rechthoekige array moet alle dimensies dezelfde grootte hebben, vandaar de naam rechthoekig. Een jagged arrey kan dimensies hebben van verschillende groottes. Multidimensionele arrays zijn een heel zwaar onderwerp en vallen buiten wat we in deze tutorial willen bespreken.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!