0Pricing
C# Academy · Lektion

IEnumerable<T>-Pipelines und verzögerte Ausführung

Erstellen Sie LINQ-Pipelines über IEnumerable und vergleichen Sie die verzögerte Ausführung mit der Materialisierung durch ToList/ToArray.

IEnumerable<T>-Pipelines und verzögerte Ausführung ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 3. 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 3 Lektionen.

Das Pipeline-Konzept von LINQ

Pipeline = eine Kette von Operatoren, die eine Sequenz transformiert.

  • Quelle: ein IEnumerable<T>
  • Operatoren: Where, Select usw.
  • Senke: Aufzählung (foreach) oder Materialisierung (ToList)

Where + Select

Erstellen Sie eine Kette mit Where und anschließend Select. Die Abfrage wird ausgeführt, während Sie sie durchlaufen.

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
    }
  }
}

Auswirkung der verzögerten Ausführung

Verzögerte Ausführung: Die Abfrage wird zum Zeitpunkt der Aufzählung ausgewertet, sodass spätere Änderungen an der Quelle sichtbar werden können.

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
    }
  }
}

Materialisierung (ToList)

Verwenden Sie ToList/ToArray, um die Sequenz jetzt zu materialisieren und spätere Änderungen an der Quelle zu vermeiden.

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

Kombinieren Sie OrderBy, Select und Take/Skip, um kleine, gut lesbare Pipelines zu erstellen.

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);
    }
  }
}

Tipps und Fallstricke

Tipps:

  • Abfragen erstellen einen Plan; ausgeführt werden sie, wenn Sie sie aufzählen oder materialisieren.
  • Materialisieren Sie mit ToList, wenn Sie einen stabilen Snapshot benötigen.
  • Halten Sie jeden Schritt klein und benennen Sie ihn eindeutig.
  • Vermeiden Sie es, teure Quellen erneut aufzuzählen; speichern Sie bei Bedarf eine Liste.

Regel für die verzögerte Ausführung

Kurzer Check: Wann wird die Abfrage bei LINQ über IEnumerable tatsächlich ausgeführt?

Zusammenfassung

Zusammenfassung: Erstellen Sie kleine IEnumerable<T>-Pipelines mit Where/Select/usw. Denken Sie daran: Die Ausführung erfolgt verzögert, bis Sie die Sequenz durchlaufen oder ToList/ToArray aufrufen.

Häufig gestellte Fragen

Ist die Lektion „IEnumerable<T>-Pipelines und verzögerte Ausführung“ kostenlos?

Ja — der vollständige Text von „IEnumerable<T>-Pipelines und verzögerte Ausführung“ 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 3 Lektionen.

Was lerne ich in „IEnumerable<T>-Pipelines und verzögerte Ausführung“?

Erstellen Sie LINQ-Pipelines über IEnumerable und vergleichen Sie die verzögerte Ausführung mit der Materialisierung durch ToList/ToArray. 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 3.

Wie lange dauert die Lektion „IEnumerable<T>-Pipelines und verzögerte Ausführung“?

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. IEnumerable -Pipelines und verzögerte Ausführung
  2. Select, Where, OrderBy, Take/Skip
  3. Abfrage- und Methodensyntax
← Zurück zu C# Academy