C#의 Array.TrueForAll() 메서드는 배열에 포함된 모든 요소가 지정된 조건자(Predicate)에서 정의한 조건을 만족하는지 여부를 판별하는 정적 메서드입니다. 모든 요소가 조건을 충족하면 true를, 단 하나라도 충족하지 않으면 false를 반환합니다.
구문
Array.TrueForAll() 메서드의 기본 구문은 다음과 같습니다.
public static bool TrueForAll<T> (T[] array, Predicate<T> match);
매개변수
- array : 조건을 검사할 1차원 배열(T[])
- match : 각 요소에 적용할 조건을 정의하는 Predicate<T> 대리자
반환 값
배열의 모든 요소가 조건자와 일치하면 true, 그렇지 않으면 false를 반환합니다.
예제
다음은 Array.TrueForAll() 메서드를 활용해 문자열 배열의 모든 요소가 특정 조건(문자 'b'로 시작)을 만족하는지 확인하는 예제입니다.
using System;
public class Demo{
public static void Main(){
Console.WriteLine("배열 요소...");
string[] arr = { "bike", "bus"};
for (int i = 0; i < arr.Length; i++){
Console.Write("{0} ", arr[i]);
}
Console.WriteLine();
int lastIndex = Array.LastIndexOf(arr, "bus");
Console.WriteLine("요소 bus가 마지막으로 나타나는 인덱스 = " + lastIndex);
bool res = Array.TrueForAll(arr, ele => ele.StartsWith("b",
StringComparison.Ordinal));
if (res)
Console.Write("배열의 모든 요소가 지정된 조건자에서 정의한 조건을 만족합니다.");
else
Console.Write("배열의 일부 요소가 지정된 조건자에서 정의한 조건을 만족하지 않습니다.");
}
}
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
배열 요소... bike bus 요소 bus가 마지막으로 나타나는 인덱스 = 1 배열의 모든 요소가 지정된 조건자에서 정의한 조건을 만족합니다.
주요 특징
- null 처리 : array 또는 match 매개변수가 null이면 ArgumentNullException이 발생합니다.
- 빈 배열 : 빈 배열을 전달하면 조건을 위반하는 요소가 없으므로 true를 반환합니다.
- LINQ와의 비교 : LINQ의 All() 확장 메서드와 유사하게 동작하지만, Array.TrueForAll()은 배열 전용으로 설계되어 더 직관적입니다.
- 유연한 조건자 : 람다 식뿐만 아니라 명명된 메서드나 기존 대리자도 조건자로 전달할 수 있습니다.