Sie sind hier: Weblog

Neu in .NET 6 [5]: LINQ-Operator Chunk()

Foto Dr. Holger Schwichtenberg, Dr. Holger Schwichtenberg
10.11.2021 08:13:00

Die Serie zu den Neuerungen in .NET 6 behandelt im fünfte Teil einen Operator zum Aufteilen einer Liste in gleich große Teile.

Mit dem neuen Chunk()-Operator in .NET 6 teilt man eine Liste in gleiche große Teile gemäß der Angabe im Parameter. Gegebenenfalls erhält man im letzten Teil einen kleineren Rest.

Beispiel: Gegeben sei eine Menge von zehn Zufallszahlen:

var menge = Enumerable.Range(0, 10)
.Select(r => _rand.Next(20))
.ToList();

Diese Menge teilt mit Chunk(3) in vier Teile: drei Teile mit drei Zahlen und der Rest-Chunk mit einer Zahl.

List<int[]> chunks = menge.Chunk(3).ToList();
Print("Chunk() Teil 1", chunks[0]);
Print("Chunk() Teil 2", chunks[1]);
Print("Chunk() Teil 3", chunks[2]);
Print("Rest-Chunk() Teil 4", chunks[3]);

Die Chunk()-Operation funktioniert natürlich nicht nur mit primitivem Datentypen, sondern auch mit Mengen von komplexen Objekten. Allerdings nur im RAM (LINQ-to-Objects). Es gibt noch keine Implementierung beim Datenbankzugriff mit Entity Framework Core. ()