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

C# 배열에 특정 조건과 일치하는 요소가 있는지 확인하는 방법 (Array.Exists)

C#에서 배열 안에 특정 조건과 일치하는 요소가 하나 이상 존재하는지 확인하려면 Array.Exists() 메서드를 사용할 수 있습니다. 이 메서드는 대상 배열과 조건자(Predicate)를 인수로 받으며, 조건을 만족하는 요소가 하나라도 있으면 true, 없으면 false를 반환합니다.


첫 번째 예제에서는 StartsWith() 메서드와 조합하여 특정 문자로 시작하는 상품이 배열에 존재하는지 확인해 보겠습니다.

예제 1 – StartsWith()로 접두사 조건 확인하기

using System;
public class Demo {
   public static void Main(){
      string[] products = { "Electronics", "Accessories", "Clothing", "Toys", "Clothing", "Furniture" };
      Console.WriteLine("상품 목록...");
      foreach(string s in products){
         Console.WriteLine(s);
      }
      Console.WriteLine("\n'C'로 시작하는 상품이 하나 이상 있나요? = {0}",
      Array.Exists(products, ele => ele.StartsWith("C")));
      Console.WriteLine("'D'로 시작하는 상품이 하나 이상 있나요? = {0}",
      Array.Exists(products, ele => ele.StartsWith("D")));
      Console.WriteLine("'T'로 시작하는 상품이 하나 이상 있나요? = {0}",
      Array.Exists(products, ele => ele.StartsWith("T")));
      Console.WriteLine("'E'로 시작하는 상품이 하나 이상 있나요? = {0}",
      Array.Exists(products, ele => ele.StartsWith("E")));
   }
}

실행 결과

상품 목록...
Electronics
Accessories
Clothing
Toys
Clothing
Furniture

'C'로 시작하는 상품이 하나 이상 있나요? = True
'D'로 시작하는 상품이 하나 이상 있나요? = False
'T'로 시작하는 상품이 하나 이상 있나요? = True
'E'로 시작하는 상품이 하나 이상 있나요? = True

'Clothing', 'Toys', 'Electronics'가 각각 C, T, E로 시작하기 때문에 해당 조건은 true를 반환하고, 'D'로 시작하는 상품은 존재하지 않으므로 false가 출력됩니다.

예제 2 – 특정 값과 일치하는 요소 확인하기

이번에는 람다 식에서 동등 비교 연산자(==)를 사용하여 배열에 특정 값과 정확히 일치하는 요소가 있는지 확인해 보겠습니다.

using System;
public class Demo {
   public static void Main(){
      string[] products = { "Electronics", "Accessories", "Clothing", "Toys", "Clothing", "Furniture" };
      Console.WriteLine("상품 목록...");
      foreach(string s in products){
         Console.WriteLine(s);
      }
      Console.WriteLine("배열에 'Accessories' 상품이 있나요? = {0}",
      Array.Exists(products, ele => ele == "Accessories"));
      Console.WriteLine("배열에 'Stationery' 상품이 있나요? = {0}",
      Array.Exists(products, ele => ele == "Stationery"));
      Console.WriteLine("\n'C'로 시작하는 상품이 하나 이상 있나요? = {0}",
      Array.Exists(products, ele => ele.StartsWith("C")));
      Console.WriteLine("'D'로 시작하는 상품이 하나 이상 있나요? = {0}",
      Array.Exists(products, ele => ele.StartsWith("D")));
      Console.WriteLine("'T'로 시작하는 상품이 하나 이상 있나요? = {0}",
      Array.Exists(products, ele => ele.StartsWith("T")));
      Console.WriteLine("'E'로 시작하는 상품이 하나 이상 있나요? = {0}",
      Array.Exists(products, ele => ele.StartsWith("E")));
   }
}

실행 결과

상품 목록...
Electronics
Accessories
Clothing
Toys
Clothing
Furniture
배열에 'Accessories' 상품이 있나요? = True
배열에 'Stationery' 상품이 있나요? = False

'C'로 시작하는 상품이 하나 이상 있나요? = True
'D'로 시작하는 상품이 하나 이상 있나요? = False
'T'로 시작하는 상품이 하나 이상 있나요? = True
'E'로 시작하는 상품이 하나 이상 있나요? = True

핵심 정리

  • Array.Exists(array, match) – 조건을 만족하는 요소가 하나라도 있으면 true를 반환합니다.
  • 조건은 ele => ele.StartsWith("C")처럼 람다 식으로 간결하게 작성할 수 있습니다.
  • StartsWith(), EndsWith(), Contains(), == 연산자 등 다양한 조건을 자유롭게 조합할 수 있습니다.
  • 반대로 모든 요소가 조건을 만족하는지 확인하려면 Array.TrueForAll() 메서드를 사용하면 됩니다.