Back to blog
Werken met collecties: foreach en LINQ
Intermediate

Werken met collecties: foreach en LINQ

David De Lombaerde David De Lombaerde · juli 10, 2026 · 10 min read

Wat is LINQ?

LINQ (Language Integrated Query) is een set methoden waarmee je collecties kunt filteren, sorteren en transformeren met leesbare, expressieve code. Het werkt op elke collectie die IEnumerable<T> implementeert: arrays, lijsten, enzovoort.

Voeg bovenaan je bestand toe: using System.Linq; (in .NET 6+ is dit al automatisch beschikbaar).

Where: filteren

List<string> lagen = new List<string> { "Muren", "Deuren", "Ramen", "Maatvoering", "Hulplijnen" };

// Alle lagen waarvan de naam met 'M' begint:
var gefiltreerd = lagen.Where(l => l.StartsWith("M")).ToList();
// [ "Muren", "Maatvoering" ]

Select: transformeren

// Converteer namen naar hoofdletters:
var hoofdletters = lagen.Select(l => l.ToUpper()).ToList();
// [ "MUREN", "DEUREN", "RAMEN", "MAATVOERING", "HULPLIJNEN" ]

OrderBy: sorteren

var gesorteerd = lagen.OrderBy(l => l).ToList();
// alfabetisch gesorteerd

var omgekeerd = lagen.OrderByDescending(l => l.Length).ToList();
// langste naam eerst

FirstOrDefault en Count

string? eersteM = lagen.FirstOrDefault(l => l.StartsWith("M"));
// "Muren"  (of null als niets gevonden)

int aantalKort = lagen.Count(l => l.Length <= 5);
// 2 ("Ramen" = 5, "Deuren" heeft 6 dus niet meegerekend...)

LINQ op objecten

class Onderdeel
{
    public string Naam { get; set; } = "";
    public double Gewicht { get; set; }
    public string Materiaal { get; set; } = "";
}

List<Onderdeel> onderdelen = new List<Onderdeel>
{
    new Onderdeel { Naam = "Bout M8",    Gewicht = 0.02, Materiaal = "Staal" },
    new Onderdeel { Naam = "Moer M8",    Gewicht = 0.01, Materiaal = "Staal" },
    new Onderdeel { Naam = "Schijf M8",  Gewicht = 0.005, Materiaal = "Nylon" },
    new Onderdeel { Naam = "Profiel 40", Gewicht = 2.5,  Materiaal = "Aluminium" },
};

// Alle stalen onderdelen, gesorteerd op gewicht:
var staalOnderdelen = onderdelen
    .Where(o => o.Materiaal == "Staal")
    .OrderBy(o => o.Gewicht)
    .ToList();

// Totaal gewicht:
double totaal = onderdelen.Sum(o => o.Gewicht);
Console.WriteLine($"Totaal gewicht: {totaal} kg");

Lambda-expressies uitgelegd

De notatie l => l.StartsWith("M") heet een lambda. Het is een mini-methode zonder naam:

In de volgende post leren we het verschil tussen reference types en value types — cruciaal om bugs te vermijden.

Share this article

LinkedIn WhatsApp X

Comments

No comments yet — be the first!

Leave a comment

Sign in to skip moderation — anonymous comments are reviewed before appearing.