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

소개

  • 오늘은 C# LINQ 구문에서 SequenceEqual 메서드에 대해서 알려 드리려고 합니다.
  • SequenceEqual 메서드는 두 컬렉션 (리스트나 배열)에 있는 요소가 같은지 조사하는 메서드입니다.
  • 이해하기 쉽게 예제 코드를 통해서 어떻게 Count 메서드를 사용하는지 보여 드리고, LINQ를 사용하지 않은 코드와 함께 작상하여 2개의 코드량의 차이도 같이 보여 드리도록 하겠습니다.

LINQ SequenceEqual 예제코드

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

namespace ConsoleApp7
{
    static class Program
    {
        static void Main(string[] args)
        {
            List<int> list1 = new List<int>()
            {
                1, 2, 3, 4 , 5, 6, 7
            };

            List<int> list2 = new List<int>()
            {
                1, 2, 3, 4 , 5, 6, 7
            };

            // LINQ 구문

            var result = list1.SequenceEqual(list2);

            if (result)
            {
                Console.WriteLine($"두개의 리스트는 내용이 모두 같습니다.");
            }
            else
            {
                Console.WriteLine($"두개의 리스트의 내용이 다릅니다.");
            }

            // LINQ를 사용하지 않은 구문
            bool equal = true;

            if(list1.Count != list2.Count)
            {
                equal = false;
            }
            else
            {
                for(int idx = 0; idx < list1.Count; idx++)
                {
                    if(list1[idx] != list2[idx])
                    {
                        equal = false;
                    }
                    break;
                }
            }
            if (equal)
            {
                Console.WriteLine($"두개의 리스트는 내용이 모두 같습니다.");
            }
            else
            {
                Console.WriteLine($"두개의 리스트의 내용이 다릅니다.");
            }
        }
    }
}

실행 결과

두개의 리스트는 내용이 모두 같습니다.
두개의 리스트는 내용이 모두 같습니다.
  • 위와 같이 LINQ를 이용한 구문의 코드 량이 월등히 적다는 것을 확인할 수 있습니다.
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY