[C#] 패턴 매칭 (목록 패턴)

Learning 

When: 1학년 9월 1일

 

How:

공부하다 패턴 매칭이 나와서 여러 개로 나눠서 올리게 되었습니다.

 

Understanding:

  • 관계 패턴 : 관계 패턴은 값이 여러 개인 타입(배열, 리스트 등)의 패턴을 검사할 때 사용하는 패턴 매칭입니다. 사용 방식은 쉬운 편인데, [패턴 1, 패턴 2, 패턴 3...] 이런 식으로 각 요소에 패턴을 적용 수 있습니다. 하지만 이러면 처음 요소나 마지막 요소 등 특정한 인덱스의 요소만 검색하고 싶을 수 있습니다. 그럴 때 사용하는 것이 슬라이스 패턴과 무시 패턴입니다. 슬라이스 패턴은 '..' 이라는 키워드를 사용하여 앞에 명시된 인덱스와 뒤에 명시된 인덱스(명시되지 않았을 시에는 처음과 끝으로 인식)의 중간을 무시한다는 뜻이고, 무시 패턴의 '_' 키워드는 하나의 요소만 무시한다는 뜻입니다. (무시한다는 것은 값이 뭐든 참으로 반환한다는 뜻입니다.) 즉 아래의 코드처럼 사용할 수 있습니다.
if (a is [_, 2, _])
    Console.WriteLine("두 번째 요소가 2이고 길이가 3인 배열");
if (a is [int, > 10, ..])
{
    Console.WriteLine("첫 번째 요소가 int 형식이고, 두 번째 요소가 10보다 긴 길이는 모르는 배열");
}
if (a is [.., 1])
{
    Console.WriteLine("마지막 요소가 1인 길이는 모르는 배열");
}

 

Result: 패턴 매칭은 다 정리 했는데, 패턴 매칭이 다른 건 몰라도 일단 코드를 짤 때 코드의 줄과 시간은 확실히 줄여줄 수 있을 것 같다는 생각이 듭니다.

'C#' 카테고리의 다른 글

[C#] Shadoing  (0) 2025.09.06
[C#] switch 식  (0) 2025.09.02
[C#] 패턴 매칭 (var, 무시)  (1) 2025.08.31
[C#] 패턴 매칭 (위치)  (0) 2025.08.30
[C#] 패턴 매칭 (관계, 논리)  (0) 2025.08.29