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
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));
}
}
70, 71Luyện tập với trình gỡ lỗi
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