C#에서 변수가 리스트의 값과 같은지 확인하는 가장 간단한 방법

C# 작업 시, 변수와 여러 값 중 하나가 일치하는지 확인해야 하곤 합니다. 이 질문은 “이를 수행하는 가장 간결한 방법은 무엇인가?“가 됩니다. 특히, 검증할 변수를 여러 번 반복하는 것을 피하고, 불필요할 경우 배열이나 리스트와 같은 긴 구문 구현을 피하고 싶을 것입니다.

이번 블로그 포스트에서는 불리언 로직을 사용하여 변수가 값 집합 중 하나와 같은지를 효율적으로 확인하는 다양한 솔루션을 살펴보겠습니다.

일반적인 접근 방식

개발자들은 종종 논리적 OR 연산자(||)를 사용하여 다음과 같이 직접 비교하는 방법을 선택하곤 합니다:

int baseCase = 5;
bool testResult = baseCase == 3 || baseCase == 7 || baseCase == 12 || baseCase == 5;

이 솔루션은 작동하지만, 확인해야 할 각 값에 대해 반복적인 코드가 필요합니다. 보시는 바와 같이, 값의 목록이 길면 코드는 빠르게 복잡해지고 오류가 발생할 위험이 커집니다.

접근 방식 재고하기

하나의 질문은 복잡한 표현식이나 .NET 3.5 기능을 사용하지 않고 이 로직을 더 간결하게 캡슐화할 수 있는 방법이 있는지에 대한 것이었습니다. 특히, 배열을 필요로 하는 구조를 피하고 싶을 것입니다. 이제 더 간결한 접근 방식을 살펴보겠습니다.

Contains 사용하기

여러 값에 대해 확인할 더 효율적인 방법에 관심이 있다면, 가장 좋은 방법 중 하나는 Contains 메서드를 활용하는 것입니다. 다만, 배열이나 리스트를 사용하는 것이 포함됩니다. 다음과 같이 작성할 수 있습니다:

bool testResult = new int[] { 3, 7, 12, 5 }.Contains(baseCase);

Contains를 사용할까요?

이 방법은 몇 가지 중요한 방법으로 코드를 간소화합니다:

  • 가독성: 코드의 명확성을 높입니다. 코드를 읽는 사람은 복잡한 OR 연산을 해독하지 않고도 당신이 하려는 일을 즉시 파악할 수 있습니다.
  • 유연성: 논리 구조를 변경하지 않고 확인할 값의 목록을 신속하게 수정할 수 있습니다.
  • 확장성: 코드의 부풀어 오름이나 반복 없이 조건에서 요소를 추가하거나 제거할 수 있습니다.

.NET 2.0 사용자를 위한 고려사항

.NET 2.0 프레임워크의 제약으로 인해 최신 버전에서 사용 가능한 일부 기능에는 접근할 수 없습니다. 하지만 위에서 공유된 Contains 구현은 .NET 2.0 내에서 잘 작동합니다. 다음과 같은 간단하면서도 효과적인 솔루션이 남아 있습니다:

bool b = new int[] { 3, 7, 12, 5 }.Contains(5);

결론

변수가 값 집합 중 어떤 값과 같은지를 확인하는 것은 배열 내의 Contains 메서드를 사용하여 우아하게 관리할 수 있습니다. 이는 깔끔하고 간결한 솔루션을 제공하면서 코드 가독성을 유지하고 긴 논리 표현식으로 인한 오류 위험을 줄입니다. C#에서 더 복잡한 논리 시나리오를 구축할 때 이러한 방법을 활용하면 .NET 2.0과 같은 구형 프레임워크에서도 잘 작동하는 깨끗하고 유지 관리 가능한 코드를 지원할 수 있습니다.

그러니 다음에 변수가 리스트에 대해 확인해야 할 때는 이러한 전략을 염두에 두어 더 깔끔한 코드를 작성해 보세요!