Syntax von Collection-Ausdrücken
Initialisieren Sie Arrays, Listen und Spans einheitlich.
Syntax von Collection-Ausdrücken ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.
Collection Expressions (C# 12)
C# 12 führt Collection Expressions ein: eine einheitliche Syntax mit eckigen Klammern zum Erstellen von Arrays, Listen, Spans und mehr. Statt new int[] { 1, 2, 3 } schreiben Sie einfach [1, 2, 3].
using System;
int[] numbers = [1, 2, 3, 4, 5];
Console.WriteLine(string.Join(",", numbers)); // 1,2,3,4,5Eine Syntax, viele Zieltypen
Dasselbe [...]-Literal funktioniert unabhängig davon, ob das Ziel ein Array, eine List<T> oder ein Span<T> ist. Der Compiler wählt die passende Erstellungsmethode.
using System;
using System.Collections.Generic;
int[] arr = [1, 2, 3];
List<int> list = [4, 5, 6];
Span<int> span = [7, 8, 9];
Console.WriteLine(arr.Length + " " + list.Count + " " + span.Length);Leere Sammlungen
Ein leerer Collection-Ausdruck ist einfach []. Er ist klarer als Array.Empty<T>() oder new List<T>() und wird automatisch anhand des Zieltyps typisiert.
using System;
using System.Collections.Generic;
int[] empty = [];
List<string> names = [];
Console.WriteLine(empty.Length + " " + names.Count); // 0 0Ausführliche Initialisierer ersetzen
Collection-Ausdrücke ersparen Ihnen die umständliche Syntax der alten Initialisierer. Vergleichen Sie die beiden folgenden Formen.
using System;
using System.Collections.Generic;
// old
List<int> oldWay = new List<int> { 1, 2, 3 };
// new
List<int> newWay = [1, 2, 3];
Console.WriteLine(oldWay.Count == newWay.Count); // TrueVerschachtelte Collections
Sie können Collection-Ausdrücke verschachteln, um jagged Arrays oder Listen aus Listen zu erstellen.
using System;
int[][] grid = [[1, 2], [3, 4], [5, 6]];
Console.WriteLine(grid[1][0]); // 3Ausdrücke als Elemente
Elemente können beliebige Ausdrücke sein, einschließlich Variablen, Methodenaufrufen und arithmetischer Ausdrücke.
using System;
int x = 10;
int[] values = [x, x * 2, x + 5, Math.Abs(-3)];
Console.WriteLine(string.Join(",", values)); // 10,20,15,3Hinweis zu mehrdimensionalen Arrays
Collection-Ausdrücke erstellen jagged Arrays (int[][]), keine rechteckigen Arrays (int[,]). Rechteckige Arrays verwenden weiterhin ihre eigene Syntax.
using System;
int[][] jagged = [[1, 2, 3], [4, 5]];
Console.WriteLine(jagged[0].Length + " " + jagged[1].Length); // 3 2Mit Span arbeiten
Da Collection-Ausdrücke auf Span<T> und ReadOnlySpan<T> abzielen können, verwendet der Compiler möglicherweise eine Stack-Allokation. Dadurch wird Heap-Müll für kurzlebige Daten vermieden.
using System;
ReadOnlySpan<int> stackData = [1, 2, 3, 4];
int total = 0;
foreach (int n in stackData) total += n;
Console.WriteLine(total); // 10Collections an Methoden übergeben
Wenn der Parametertyp eine Collection ist, können Sie am Aufrufort direkt einen Collection-Ausdruck übergeben.
using System;
static int Sum(int[] xs) {
int t = 0;
foreach (int x in xs) t += x;
return t;
}
Console.WriteLine(Sum([2, 4, 6])); // 12Bessere Lesbarkeit
Collection-Ausdrücke spielen ihre Stärken in datenintensivem Code aus, etwa bei Konfigurationstabellen oder Test-Fixtures, weil die eckigen Klammern den Fokus auf den Werten halten.
using System;
string[] days = ["Mon", "Tue", "Wed", "Thu", "Fri"];
Console.WriteLine(days[^1]); // FriCollections zurückgeben
Eine Methode kann einen Collection-Ausdruck zurückgeben, wobei der Rückgabetyp die Erstellung bestimmt.
using System;
static int[] Primes() => [2, 3, 5, 7, 11];
Console.WriteLine(string.Join(",", Primes())); // 2,3,5,7,11Kurzer Test
Überprüfen Sie Ihr Verständnis der Grundlagen von Collection-Ausdrücken.
Zusammenfassung
Sie haben die Syntax für Collection-Ausdrücke aus C# 12 kennengelernt.
[1, 2, 3]ersetzt ausführliche Initialisierer.[]ist eine leere Collection.- Der Ausdruck wird anhand des Zieltyps typisiert: Arrays, Listen und Spans funktionieren gleichermaßen.
- Verschachtelte Klammern erstellen jagged Arrays.
Häufig gestellte Fragen
Ist die Lektion „Syntax von Collection-Ausdrücken“ kostenlos?
Ja — der vollständige Text von „Syntax von Collection-Ausdrücken“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Syntax von Collection-Ausdrücken“?
Initialisieren Sie Arrays, Listen und Spans einheitlich. Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C# Academy zu starten?
Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Syntax von Collection-Ausdrücken“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?
Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Syntax von Collection-Ausdrücken
- Das Spread-Element
- Zieltypinferenz bei Collections
- Collection Builder