Drop hier links of afbeeldingen om ze aan de editor toe te voegen.

Een heel handige functie (of methode) van de klasse String is Split(...). Daarmee kan je een tekst opdelen in een array van stukjes, op basis van een of meer splitsingstekens (zoals een spatie of een leesteken). Je hoeft op voorhand niet te weten hoeveel stukjes er zullen zijn: C# lost dat zelf voor je op en maakt de array precies groot genoeg.

Split past dus mooi samen met de foreach-lus: je splitst een tekst in een array, en overloopt die array vervolgens met een foreach-lus.

Splitsen op één teken

In het eerste voorbeeld splitsen we een zin in woorden, door te splitsen op de spatie. Let op: een spatie als teken schrijf je tussen enkele aanhalingstekens (' '), want het gaat om een char (één enkel teken), niet om een string.

string deTekst = "We hebben een stukje tekst nodig voor dit voorbeeld";
string[] woorden = deTekst.Split(' ');

foreach (string woord in woorden)
{
    Console.WriteLine(woord);
}

De array woorden bevat na het splitsen acht elementen, één per woord. De foreach-lus toont ze elk op een aparte regel:

We
hebben
een
stukje
tekst
nodig
voor
dit
voorbeeld

Splitsen op meerdere tekens

Soms wil je op meerdere tekens tegelijk splitsen, bijvoorbeeld op een spatie én op verschillende leestekens. Daarvoor geef je aan Split een array van chars mee. Elk teken uit die array zorgt voor een nieuwe opdeling.

string tweedeTekst = "Een.tekst met?ook!leestekens;erin";
char[] leestekens = { ' ', '.', '!', '?', ';', ':' };
string[] woorden = tweedeTekst.Split(leestekens);

foreach (string woord in woorden)
{
    Console.WriteLine(woord);
}

Hier wordt op zes verschillende tekens gesplitst: de spatie en vijf leestekens. Elk van die tekens markeert het einde van een stukje. De uitvoer is:

Een
tekst
met
ook
leestekens
erin

Het type tussen de aanhalingstekens maakt een verschil: ' ' (enkele aanhalingstekens) is een char, één enkel teken. " " (dubbele aanhalingstekens) zou een string zijn. Split werkt hier met char’s, dus gebruik je enkele aanhalingstekens.