IEnumerable<T>-pijplijnen en uitgestelde uitvoering
Bouw LINQ-pijplijnen boven IEnumerable en bekijk het verschil tussen uitgestelde uitvoering en materialisatie met ToList/ToArray.
IEnumerable<T>-pijplijnen en uitgestelde uitvoering is een gratis C# Academy-les op CoddyKit. Dit is les 1 van 3. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject C# Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus C# Academy bevat in totaal 3 lessen.
Idee achter de LINQ-verwerkingsketen
Verwerkingsketen = keten van operators die een reeks transformeert.
- Bron: een IEnumerable<T>
- Operators: Where, Select enzovoort
- Eindpunt: enumeratie (foreach) of materialisatie (ToList)
Where + Select
Maak een keten met eerst Where en daarna Select. De query wordt uitgevoerd wanneer je erdoorheen loopt.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
int[] numbers = new int[] { 1, 2, 3, 4, 5 };
// Build pipeline: keep even numbers, then square them
var query = numbers
.Where(n => n % 2 == 0)
.Select(n => n * n);
foreach (int x in query)
{
Console.WriteLine(x); // 4, 16
}
}
}
Effect van uitgestelde uitvoering
Uitgestelde uitvoering: de query wordt tijdens enumeratie geëvalueerd, zodat latere wijzigingen in de bron zichtbaar kunnen zijn.
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
List<int> data = new List<int>();
data.Add(1);
data.Add(2);
var evens = data.Where(x => x % 2 == 0); // query is not executed yet
data.Add(3);
data.Add(4); // modify source after building query
foreach (int e in evens)
{
Console.WriteLine(e); // prints 2 and 4 because execution is deferred
}
}
}
Materialisatie (ToList)
Gebruik ToList/ToArray om de reeks nu te materialiseren, zodat latere wijzigingen in de bron geen effect hebben.
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
List<string> words = new List<string>();
words.Add("apple");
words.Add("banana");
var longOnes = words.Where(w => w.Length >= 6);
List<string> snapshot = longOnes.ToList(); // materialize now
words.Add("pear"); // changes after materialization
words.Add("cherry"); // length 6, but snapshot is already frozen
foreach (string w in snapshot)
{
Console.WriteLine(w); // prints "banana" only
}
}
}
OrderBy + Take
Combineer OrderBy, Select en Take/Skip om kleine, leesbare verwerkingsketens te maken.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
int[] nums = new int[] { 5, 1, 4, 2, 3 };
var firstTwoSortedSquares = nums
.OrderBy(n => n) // 1,2,3,4,5
.Select(n => n * n)
.Take(2); // 1,4
foreach (int x in firstTwoSortedSquares)
{
Console.WriteLine(x);
}
}
}
Tips en valkuilen
Tips:
- Query's bouwen een plan; ze worden uitgevoerd wanneer je ze enumereert of materialiseert.
- Materialiseer met ToList wanneer je een stabiele momentopname nodig hebt.
- Houd elke stap klein en geef deze een duidelijke naam.
- Vermijd het opnieuw enumereren van dure bronnen; sla zo nodig een lijst op.
Regel voor uitgestelde uitvoering
Samenvatting
Samenvatting: Bouw kleine IEnumerable<T>-verwerkingsketens met Where/Select enzovoort. Onthoud: de uitvoering wordt uitgesteld totdat je erdoorheen loopt of ToList/ToArray aanroept.
Leer C# met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 93
- Lessen
- 346
Veelgestelde vragen
Is de les “IEnumerable<T>-pijplijnen en uitgestelde uitvoering” gratis?
Ja — de volledige tekst van “IEnumerable<T>-pijplijnen en uitgestelde uitvoering” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus C# Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus C# Academy bevat in totaal 3 lessen.
Wat leer ik in “IEnumerable<T>-pijplijnen en uitgestelde uitvoering”?
Bouw LINQ-pijplijnen boven IEnumerable en bekijk het verschil tussen uitgestelde uitvoering en materialisatie met ToList/ToArray. Je oefent met C# Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met C# Academy te beginnen?
Ervaring vooraf is niet nodig. C# Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 3.
Hoe lang duurt de les “IEnumerable<T>-pijplijnen en uitgestelde uitvoering”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over C# Academy?
Ja. Elke les over C# Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- IEnumerable -pijplijnen en uitgestelde uitvoering
- Select, Where, OrderBy, Take/Skip
- Querysyntaxis versus methodsyntaxis