C#-Übungen

Eine LINQ-Filterbedingung debuggen in C#

In dieser Lektion beobachtest du mit einem Haltepunkt, wie LINQ jedes Element prüft, und korrigierst eine falsche Filterbedingung.

Einführung

Liefert eine LINQ-Abfrage nicht das erwartete Ergebnis, kannst du einen Haltepunkt (breakpoint) in die Bedingungsfunktion setzen und jeden geprüften Wert beobachten. Diese Übung zeigt einen sehr häufigen Fehler: die Verwechslung von > und >= beim Grenzwert.

Bestanden ist ab 70 Punkten, also einschließlich 70, deshalb muss die Funktion IsPassing >= statt > verwenden. Schreibst du score > 70, wird die Punktzahl 70 fälschlich ausgeschlossen. Mit der korrigierten Bedingung lautet das Ergebnis 70, 71. Setze einen Haltepunkt in IsPassing und starte den Debug-Modus, um zu sehen, wie LINQ diese Funktion für jede Punktzahl aufruft.

Ausführbares C#-Beispiel

C#
Code ausführen →
Program.cs
using System;
using System.Linq;
class Program
{
    static bool IsPassing(int score) => score >= 70;
    static void Main()
    {
        int[] scores = { 69, 70, 71 };
        var passing = scores.Where(IsPassing);
        Console.WriteLine(string.Join(", ", passing));
    }
}
Ergebnis der Ausführung
70, 71

Mit dem Debugger üben

Setze einen Haltepunkt auf eine wichtige Zuweisung oder Bedingung, klicke auf Debug und sieh dir die lokalen Werte an, bevor du zur nächsten Zeile gehst.

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges