[C# 문법] C# LINQ Count 메서드

소개

  • 오늘은 C# LINQ 구문에서 Count 메서드에 대해서 알려 드리려고 합니다.
  • Count 메서드는 보통 조건에 일치하는 요소가 컬렉션 안에 몇개가 존재하는지 세는 메서드입니다.
  • 이해하기 쉽게 예제 코드를 통해서 어떻게 Count 메서드를 사용하는지 보여 드리고, LINQ를 사용하지 않은 코드와 함께 작상하여 2개의 코드량의 차이도 같이 보여 드리도록 하겠습니다.

LINQ Count 예제코드

  • 예제 코드는 학생들의 성적(Score)이 50점 이상인 학생의 수가 몇명인지를 Count 메서드를 통해서 알아 보는 예제 코드입니다.
  • 또한, LINQ를 사용하지 않는 구문도 아래 함께 작성해 보았습니다.
using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp7
{
    static class Program
    {
        static void Main(string[] args)
        {
            // LINQ 구문
            var students = InitialStudent();
            var result = students.Count(x => x.Score >= 50);

            Console.WriteLine($"성적이 50점 이상인 학생의 수는 {result} 명 입니다.");

            // LINQ를 사용하지 않은 구문
            int count = 0;
            for(int idx = 0; idx < students.Count; idx++)
            {
                if(students[idx].Score >= 50)
                {
                    count++;
                }
            }

            Console.WriteLine($"성적이 50점 이상인 학생의 수는 {count} 명 입니다.");
        }

        static List<Student> InitialStudent()
        {
            List<Student> list = new List<Student>()
            {
                new Student() { Name = "범범조조", Age = 20, Grade = "A", Score = 100 },
                new Student() { Name = "유재석", Age = 21, Grade = "B", Score = 10 },
                new Student() { Name = "김종국", Age = 22, Grade = "C", Score = 89 },
                new Student() { Name = "송지효", Age = 20, Grade = "D", Score = 60 },
                new Student() { Name = "하하", Age = 20, Grade = "A+", Score = 20 },
                new Student() { Name = "지석진", Age = 40, Grade = "F", Score = 55 },
                new Student() { Name = "아이유", Age = 30, Grade = "A", Score = 64 },
                new Student() { Name = "정형돈", Age = 20, Grade = "A", Score = 79 },
                new Student() { Name = "김성주", Age = 20, Grade = "A", Score = 29 }
            };

            return list;
        }
    }

    public class Student
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Grade { get; set; }
        public int Score { get; set; }
    }
}

실행 결과

성적이 50점 이상인 학생의 수는 6 명 입니다.
성적이 50점 이상인 학생의 수는 6 명 입니다.
  • 위와 같이 LINQ를 이용한 구문의 코드 량이 월등히 적다는 것을 확인할 수 있습니다.
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY