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() 메서드를 사용하면 됩니다.