C#의 SequenceEqual 메서드는 LINQ에서 제공하는 확장 메서드로, 두 컬렉션이 동일한지 여부를 검사할 때 사용됩니다. 두 시퀀스의 요소 개수가 같고, 요소의 순서까지 모두 일치해야 true를 반환합니다.
시퀀스 설정
먼저 비교에 사용할 문자열 배열을 준비합니다.
string[] arr1 = { "This", "is", "it" };
string[] arr2 = { "My", "work", "report" };
string[] arr3 = { "This", "is", "it" };여기서 arr1과 arr2는 내용이 서로 다르고, arr1과 arr3는 동일한 요소를 같은 순서로 가지고 있습니다.
SequenceEqual로 시퀀스 비교하기
SequenceEqual 메서드에 비교 대상 시퀀스를 인수로 전달하면, 두 시퀀스가 같은지 여부를 bool 값으로 반환받을 수 있습니다.
arr1.SequenceEqual(arr2);
예제 코드
다음은 세 개의 배열을 서로 비교하는 전체 예제입니다.
using System;
using System.Linq;
class Program {
static void Main() {
string[] arr1 = { "This", "is", "it" };
string[] arr2 = { "My", "work", "report" };
string[] arr3 = { "This", "is", "it" };
bool res1 = arr1.SequenceEqual(arr2);
Console.WriteLine(res1);
bool res2 = arr1.SequenceEqual(arr3);
Console.WriteLine(res2);
}
}
실행 결과
False
True
정리
arr1과 arr2는 요소가 서로 다르므로 False가 출력되고, arr1과 arr3는 모든 요소와 순서가 일치하므로 True가 출력됩니다. 참고로 SequenceEqual은 기본적으로 해당 형식의 기본 같음 비교자(Default Equality Comparer)를 사용하며, 필요하다면 사용자 지정 IEqualityComparer를 추가 인수로 전달하여 비교 기준을 변경할 수도 있습니다.