Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 문자열 배열에서 특정 문자열 검색하기 - LINQ Contains() 메서드 완벽 가이드

C#에서 문자열 배열 안에 특정 문자열이 존재하는지 확인해야 할 때, LINQ의 Contains() 메서드를 사용하면 매우 간단하게 처리할 수 있습니다. 이 글에서는 기본 개념부터 전체 예제 코드까지 단계별로 살펴보겠습니다.

핵심 원리: LINQ Contains() 메서드

Contains() 메서드는 컬렉션 내부에 지정한 요소가 있는지 검사하고, 그 결과를 true 또는 false의 불리언 값으로 반환합니다. 문자열 배열에 적용하면 해당 문자열의 포함 여부를 즉시 확인할 수 있습니다.

1단계: 문자열 배열 선언

먼저 검색 대상이 될 문자열 배열을 준비합니다.

string[] arr = { "Bag", "Pen", "Pencil" };

2단계: 검색할 문자열 지정

다음으로, 찾고자 하는 문자열을 별도의 변수에 담아둡니다.

string str = "Pen";

3단계: Contains() 메서드로 검색 실행

AsQueryable() 메서드로 배열을 IQueryable 형태로 변환한 뒤 Contains()를 호출하면, 해당 문자열이 배열에 존재하는지 확인할 수 있습니다.

arr.AsQueryable().Contains(str);

전체 예제 코드

지금까지의 과정을 하나의 완성된 프로그램으로 정리하면 다음과 같습니다.

using System;
using System.Linq;
using System.Collections.Generic;

class Demo {
    static void Main() {
        string[] arr = { "Bag", "Pen", "Pencil" };
        string str = "Pen";
        bool res = arr.AsQueryable().Contains(str);
        Console.WriteLine("String Pen is in the array? " + res);
    }
}

실행 결과

String Pen is in the array? True

배열 arr에는 "Pen"이라는 문자열이 실제로 포함되어 있으므로 결과가 True로 출력됩니다. 반대로 배열에 없는 문자열(예: "Eraser")을 검색하면 False가 반환됩니다.

추가 팁: 더 간결한 작성 방법

System.Linq 네임스페이스만 참조하고 있다면 AsQueryable() 없이 Enumerable.Contains()를 바로 사용할 수도 있습니다.

bool res = arr.Contains(str);

또한 Contains() 메서드는 기본적으로 대소문자를 구분한다는 점에 유의하세요. 대소문자 구분 없이 비교하려면 StringComparer.OrdinalIgnoreCase를 두 번째 인자로 전달하면 됩니다.

bool res = arr.Contains("pen", StringComparer.OrdinalIgnoreCase);