Bài tập C#

Gỡ lỗi điều kiện lọc LINQ trong C#

Trong bài học này, bạn sẽ dùng breakpoint để quan sát cách LINQ kiểm tra từng phần tử và sửa một điều kiện lọc bị sai.

Giới thiệu

Khi một truy vấn LINQ cho kết quả không như mong đợi, bạn có thể đặt điểm dừng (breakpoint) bên trong hàm điều kiện để quan sát từng giá trị được kiểm tra. Bài tập này minh họa một lỗi rất phổ biến: dùng sai giữa > và >= ở giá trị biên.

Điểm đạt là từ 70 trở lên, tức là bao gồm cả 70, nên hàm IsPassing phải dùng >= thay vì >. Nếu viết score > 70, điểm 70 sẽ bị loại nhầm. Với điều kiện đã sửa, kết quả là 70, 71. Hãy đặt breakpoint trong IsPassing và chạy chế độ gỡ lỗi để thấy LINQ gọi hàm này cho từng điểm số.

Ví dụ C# chạy được

C#
Chạy code →
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));
    }
}
Kết quả khi chạy
70, 71

Luyện tập với trình gỡ lỗi

Đặt breakpoint ở một phép gán hoặc điều kiện quan trọng, bấm Debug và xem giá trị các biến cục bộ (local variable) trước khi bước sang dòng tiếp theo.

Luyện tập với thử thách

Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.

Tất cả thử thách