C#에서 LINQ 필터 조건 디버깅하기
이 레슨에서는 중단점으로 LINQ가 각 요소를 확인하는 과정을 살펴보고 잘못된 필터 조건을 고칩니다.
소개
LINQ 쿼리가 예상한 결과를 내지 않으면, 조건 함수에 중단점(breakpoint)을 두고 확인되는 값을 하나씩 살펴볼 수 있습니다. 이 연습은 경계값에서 >와 >=를 헷갈리는, 아주 흔한 실수를 보여 줍니다.
합격은 70점부터이고 70점도 포함되므로 IsPassing 함수는 >가 아니라 >=를 써야 합니다. score > 70이라고 쓰면 70점이 실수로 빠집니다. 조건을 고치면 결과는 70, 71입니다. IsPassing에 중단점을 두고 디버그 모드로 실행하면 LINQ가 점수마다 이 함수를 호출하는 모습을 볼 수 있습니다.
실행 가능한 C# 예제
C#
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));
}
}
70, 71디버거로 연습하기
중요한 대입이나 조건에 중단점을 두고 Debug를 눌러 다음 줄로 넘어가기 전에 지역 변수 값을 확인하세요.
챌린지로 연습하기
이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.
모든 챌린지