0Pricing
C# Academy · Lektion

LINQ-Vorschau: Where, Select, OrderBy, Take/Skip; verzögerte Ausführung

Erstellen Sie kleine LINQ-Pipelines über IEnumerable : Filtern Sie mit Where, transformieren Sie mit Select, sortieren Sie mit OrderBy und lernen Sie den Unterschied zwischen verzögerter Ausführung und Materialisierung kennen.

LINQ-Vorschau: Where, Select, OrderBy, Take/Skip; verzögerte Ausführung ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.

LINQ-Übersicht

Ziel: Verwenden Sie kleine LINQ-Pipelines, um Daten zu filtern, umzuwandeln und zu sortieren.

  • Where (filtern)
  • Select (abbilden)
  • OrderBy, Take/Skip
  • Verzögerte Ausführung und Materialisierung

Where und Select

Verketten Sie zunächst Where (filtern) und anschließend Select (umwandeln). Lesen Sie die Pipeline von links nach rechts.

using System;
using System.Linq;

public class Program
{
  public static void Main(string[] args)
  {
    int[] data = new int[] { 1, 2, 3, 4, 5, 6 };

    // Filter even numbers, then square them
    var query = data.Where(x => x % 2 == 0)
                    .Select(x => x * x);

    foreach (int n in query)
    {
      Console.WriteLine(n); // 4, 16, 36
    }
  }
}

OrderBy und Take

Sortieren Sie mit OrderBy (und ThenBy) und begrenzen Sie mit Take.

using System;
using System.Linq;

public class Program
{
  public static void Main(string[] args)
  {
    string[] names = new string[] { "Zoe", "Ada", "Alan", "Bob" };

    var top2 = names.OrderBy(s => s.Length) // shortest first
                    .ThenBy(s => s)         // tie-breaker
                    .Take(2);

    foreach (string s in top2)
    {
      Console.WriteLine(s); // Ada, Bob
    }
  }
}

Projektion (anonymer Typ)

Select kann anonyme Objekte für schnelle Änderungen der Datenform erstellen (Word, Length).

using System;
using System.Linq;

public class Program
{
  public static void Main(string[] args)
  {
    string[] words = new string[] { "map", "filter", "reduce" };

    var info = words.Select(w => new { Word = w, Length = w.Length });

    foreach (var x in info)
    {
      Console.WriteLine(x.Word + " (" + x.Length + ")");
    }
  }
}

Verzögerte Ausführung

Verzögert: Die Abfrage wird ausgeführt, wenn Sie darüber iterieren. Änderungen an der Quelle vor der Aufzählung beeinflussen die Ergebnisse.

using System;
using System.Linq;
using System.Collections.Generic;

public class Program
{
  public static void Main(string[] args)
  {
    List<int> numbers = new List<int> { 1, 2, 3 };

    var q = numbers.Where(x => x > 1); // not executed yet

    numbers.Add(4); // modify source before enumeration

    foreach (int x in q) // executes here
    {
      Console.WriteLine(x); // 2, 3, 4
    }
  }
}

Materialisieren und Syntax

Verwenden Sie ToList/ToArray, um die Ergebnisse auszuführen und zu speichern. Die Abfragesyntax ist eine weitere Möglichkeit, dieselbe Pipeline zu schreiben.

using System;
using System.Linq;

public class Program
{
  public static void Main(string[] args)
  {
    int[] data = new int[] { 3, 1, 2 };

    // Method syntax + materialize
    var sorted = data.OrderBy(x => x).ToList(); // executes now
    data[0] = 100; // will not affect 'sorted' (already materialized)

    foreach (int n in sorted) { Console.WriteLine(n); } // 1,2,3

    // Query syntax (equivalent)
    var query =
      from x in data
      where x < 50
      select x * 2;

    foreach (int n in query) { Console.WriteLine(n); } // 2,4
  }
}

Bedeutung der verzögerten Ausführung

Kurze Frage: Was bedeutet es, dass die meisten LINQ-Operatoren verzögert ausgeführt werden?

Zusammenfassung

Zusammenfassung: Erstellen Sie Pipelines mit Where, Select, OrderBy und Take/Skip. LINQ wird verzögert ausgeführt – materialisieren Sie die Ergebnisse mit ToList/ToArray, wenn Sie stabile Ergebnisse benötigen.

Häufig gestellte Fragen

Ist die Lektion „LINQ-Vorschau: Where, Select, OrderBy, Take/Skip; verzögerte Ausführung“ kostenlos?

Ja — der vollständige Text von „LINQ-Vorschau: Where, Select, OrderBy, Take/Skip; 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 „LINQ-Vorschau: Where, Select, OrderBy, Take/Skip; verzögerte Ausführung“?

Erstellen Sie kleine LINQ-Pipelines über IEnumerable : Filtern Sie mit Where, transformieren Sie mit Select, sortieren Sie mit OrderBy und lernen Sie den Unterschied zwischen verzögerter Ausführung u… 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 3 von 3.

Wie lange dauert die Lektion „LINQ-Vorschau: Where, Select, OrderBy, Take/Skip; 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. Arrays, Slicing, List , Dictionary
  2. foreach-Muster und Collection-Initialisierer
  3. LINQ-Vorschau: Where, Select, OrderBy, Take/Skip; verzögerte Ausführung
← Zurück zu C# Academy