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

C#에서 모든 List 요소가 술어(Predicate) 조건과 일치하는지 확인하는 방법

List.TrueForAll() 메서드란?

C#에서 List<T> 컬렉션의 모든 요소가 특정 조건(술어)을 만족하는지 확인하려면 TrueForAll() 메서드를 사용합니다. 이 메서드는 목록의 각 요소에 지정한 술어 조건을 하나씩 적용하고, 모든 요소가 조건과 일치하면 true, 단 하나라도 일치하지 않으면 false를 반환합니다.

메서드 시그니처는 다음과 같습니다.

public bool TrueForAll(Predicate<T> match);

매개변수로 전달되는 Predicate<T>는 각 요소를 검사하는 델리게이트로, 조건을 만족하면 true를 반환하는 메서드를 정의하면 됩니다.

예제 1: 조건이 하나라도 불일치하는 경우

다음 예제에서는 각 요소가 10으로 나누어 떨어지는지 검사하는 술어를 정의했습니다. 그런데 목록에 포함된 215는 10으로 나누어 떨어지지 않으므로 최종 결과는 false가 됩니다.

using System;
using System.Collections.Generic;

public class Demo {
   private static bool demo(int i) {
      return ((i % 10) == 0);
   }

   public static void Main(String[] args) {
      List<int> list = new List<int>();
      list.Add(200);
      list.Add(215);
      list.Add(310);
      list.Add(500);
      list.Add(600);

      Console.WriteLine("List elements...");
      foreach (int i in list) {
         Console.WriteLine(i);
      }

      Console.WriteLine(list.TrueForAll(demo));
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

List elements...
200
215
310
500
600
False

215가 조건을 만족하지 않기 때문에 TrueForAll()false를 반환합니다.

예제 2: 모든 요소가 조건을 만족하는 경우

이번에는 목록의 모든 요소가 10의 배수인 경우입니다. 100부터 1000까지 모든 값이 10으로 나누어 떨어지므로 결과는 true가 됩니다.

using System;
using System.Collections.Generic;

public class Demo {
   private static bool demo(int i) {
      return ((i % 10) == 0);
   }

   public static void Main(String[] args) {
      List<int> list = new List<int>();
      list.Add(100);
      list.Add(200);
      list.Add(300);
      list.Add(400);
      list.Add(500);
      list.Add(600);
      list.Add(700);
      list.Add(800);
      list.Add(900);
      list.Add(1000);

      Console.WriteLine("List elements...");
      foreach (int i in list) {
         Console.WriteLine(i);
      }

      Console.WriteLine(list.TrueForAll(demo));
   }
}

출력 결과

List elements...
100
200
300
400
500
600
700
800
900
1000
True

정리

  • TrueForAll()은 목록의 모든 요소가 술어 조건을 만족하는지 한 번에 검사할 수 있는 편리한 메서드입니다.
  • 모든 요소가 조건과 일치하면 true, 하나라도 불일치하면 false를 반환합니다.
  • 빈 목록에 호출하면 항상 true를 반환한다는 점도 참고하면 좋습니다.