0Pricing
C# Academy · Lektion

Das Spread-Element

Kombinieren Sie Collections mit dem Spread-Operator.

Das Spread-Element ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.

Das Spread-Element ..

Innerhalb eines Collection-Ausdrucks fügt das Spread-Element .. den Inhalt einer anderen Collection ein. So kombinieren Sie Sequenzen deklarativ.

using System;

int[] a = [1, 2, 3];
int[] b = [4, 5, 6];
int[] all = [..a, ..b];
Console.WriteLine(string.Join(",", all)); // 1,2,3,4,5,6

Spreads und einzelne Elemente kombinieren

Sie können Spread-Elemente beliebig mit einzelnen Werten abwechseln; die Reihenfolge bleibt erhalten.

using System;

int[] middle = [2, 3, 4];
int[] result = [1, ..middle, 5];
Console.WriteLine(string.Join(",", result)); // 1,2,3,4,5

Voranstellen und Anhängen

Mit Spreads ist es ganz einfach, etwas „an den Anfang“ oder „an das Ende“ zu setzen. Dabei entsteht eine neue Collection, ohne dass das Original verändert wird.

using System;

int[] core = [10, 20, 30];
int[] withHead = [0, ..core];
int[] withTail = [..core, 40];
Console.WriteLine(string.Join(",", withHead)); // 0,10,20,30
Console.WriteLine(string.Join(",", withTail)); // 10,20,30,40

Mehrere Quellen spreaden

Sie können beliebig viele Collections in eine Collection spreaden. So verketten Sie mehrere Listen in einem einzigen Ausdruck.

using System;
using System.Collections.Generic;

List<string> x = ["a", "b"];
List<string> y = ["c"];
List<string> z = ["d", "e"];
List<string> merged = [..x, ..y, ..z];
Console.WriteLine(string.Join(",", merged)); // a,b,c,d,e

Verschiedene Collection-Typen spreaden

Die Spread-Quelle kann jede aufzählbare Collection sein: ein Array in eine Liste, eine Liste in ein Array und so weiter. Der Zieltyp bestimmt das Ergebnis.

using System;
using System.Collections.Generic;

int[] arr = [1, 2];
List<int> list = [3, 4];
int[] combined = [..arr, ..list];
Console.WriteLine(string.Join(",", combined)); // 1,2,3,4

IEnumerable spreaden

Auch verzögerte Sequenzen aus LINQ können gespreadet werden; sie werden aufgezählt, wenn die neue Collection erstellt wird.

using System;
using System.Linq;

var evens = Enumerable.Range(1, 6).Where(n => n % 2 == 0);
int[] result = [0, ..evens];
Console.WriteLine(string.Join(",", result)); // 0,2,4,6

Collections schrittweise aufbauen

Spreads eignen sich hervorragend für den schrittweisen Aufbau, ohne imperative Add-Aufrufe.

using System;

int[] baseline = [1, 2, 3];
int[] extra = [4, 5];
int[] full = [..baseline, ..extra, 6];
Console.WriteLine(full.Length); // 6

Die Reihenfolge ist entscheidend

Die resultierende Sequenz folgt der textuellen Reihenfolge der Elemente und Spreads. Wenn Sie Spreads vertauschen, ändert sich daher die Ausgabe.

using System;

int[] a = [1, 2];
int[] b = [3, 4];
Console.WriteLine(string.Join(",", [..a, ..b])); // 1,2,3,4
Console.WriteLine(string.Join(",", [..b, ..a])); // 3,4,1,2

Spreads und Concat

Spreads ersetzen häufig Concat + ToArray. Sie sind klarer zu lesen und ermöglichen es dem Compiler, die Größe des Ergebnisses effizient zu bestimmen.

using System;
using System.Linq;

int[] a = [1, 2];
int[] b = [3, 4];
// old
int[] oldWay = a.Concat(b).ToArray();
// new
int[] newWay = [..a, ..b];
Console.WriteLine(oldWay.SequenceEqual(newWay)); // True

In Spans spreaden

Da der Zieltyp ein Span sein kann, können Sie Daten kombinieren und dabei für performancekritische Pfade möglicherweise eine Stack-Allokation nutzen.

using System;

ReadOnlySpan<int> head = [1, 2];
ReadOnlySpan<int> tail = [3, 4];
int[] joined = [..head, ..tail];
Console.WriteLine(string.Join(",", joined)); // 1,2,3,4

Ein praktisches Zusammenführen

Hier führen wir Standardeinstellungen und Überschreibungen in einem Ausdruck zusammen. Dabei bleiben die späteren Werte nach den Standardwerten erhalten.

using System;

string[] defaults = ["--verbose", "--color"];
string[] userArgs = ["--output=log.txt"];
string[] finalArgs = [..defaults, ..userArgs];
Console.WriteLine(string.Join(" ", finalArgs));

Kurzer Test

Überprüfen Sie Ihr Verständnis des Spread-Elements.

Zusammenfassung

Sie haben das Spread-Element .. innerhalb von Collection-Ausdrücken kennengelernt.

  • [..a, ..b] verkettet Collections.
  • Spreads lassen sich mit einzelnen Elementen kombinieren und bewahren die Reihenfolge.
  • Quellen können Arrays, Listen, Spans oder beliebige IEnumerable sein.
  • Dies ist eine klarere Alternative zu Concat().ToArray().

Häufig gestellte Fragen

Ist die Lektion „Das Spread-Element“ kostenlos?

Ja — der vollständige Text von „Das Spread-Element“ 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 „Das Spread-Element“?

Kombinieren Sie Collections mit dem Spread-Operator. 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 2 von 4.

Wie lange dauert die Lektion „Das Spread-Element“?

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