0Pricing
C# Academy · Lektion

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,5

Eine 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 0

Ausfü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); // True

Verschachtelte 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]); // 3

Ausdrü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,3

Hinweis 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 2

Mit 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); // 10

Collections 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])); // 12

Bessere 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]); // Fri

Collections 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,11

Kurzer 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

  1. Syntax von Collection-Ausdrücken
  2. Das Spread-Element
  3. Zieltypinferenz bei Collections
  4. Collection Builder
← Zurück zu C# Academy