C#에서 LINQ로 학생 묶기
이 레슨에서는 LINQ로 학생을 등급별로 묶고 그룹마다 평균을 계산합니다.
소개
LINQ의 GroupBy 메서드는 A나 B 같은 등급을 키로 리스트를 여러 그룹으로 나눕니다. 그런 다음 개수 세기, 합계, 평균처럼 그룹마다 따로 계산할 수 있습니다.
GroupBy(s => s.Grade)는 학생들을 A 그룹과 B 그룹으로 나누고, OrderBy(g => g.Key)는 그룹을 이름순으로 정렬합니다. 각 그룹에는 등급이 담긴 Key 속성이 있고, Average 같은 LINQ 메서드를 바로 쓸 수 있습니다. A 그룹의 평균은 93.0, B 그룹은 84.0입니다.
실행 가능한 C# 예제
C#
Program.cs
using System;
using System.Linq;
record Student(string Name, string Grade, int Score);
class Program
{
static void Main()
{
var students = new[] { new Student("Ada", "A", 95), new Student("Lin", "B", 84), new Student("Grace", "A", 91) };
foreach (var group in students.GroupBy(s => s.Grade).OrderBy(g => g.Key))
Console.WriteLine($"{group.Key}: {group.Average(s => s.Score):F1}");
}
}
A: 93.0
B: 84.0디버거로 연습하기
중요한 대입이나 조건에 중단점을 두고 Debug를 눌러 다음 줄로 넘어가기 전에 지역 변수 값을 확인하세요.
챌린지로 연습하기
이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.
모든 챌린지