C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でListのすべての要素が述語(Predicate)の条件に一致するかを確認する方法

C#でList内のすべての要素が、指定した述語(Predicate)の条件に一致しているかどうかを確認したい場合は、TrueForAllメソッドを使用します。このメソッドは、すべての要素が条件を満たしていれば true を返し、1つでも条件を満たさない要素が存在すれば false を返します。

TrueForAllメソッドとは

List<T>.TrueForAll(Predicate<T> match) は、リストの各要素に対して指定されたデリゲート(述語)を順番に適用し、すべての要素がその条件を満たしているかどうかを判定するメソッドです。自分でループ処理を記述する必要がないため、コードを簡潔に保つことができます。

例1:条件を満たさない要素が含まれる場合

次の例では、リストの各要素が「10で割り切れる」という条件を満たすかどうかを確認しています。

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」という10で割り切れない要素が含まれているため、結果は False となります。

例2:すべての要素が条件を満たす場合

続いて、リスト内のすべての要素が10の倍数であるケースを見てみましょう。

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

すべての要素が10の倍数であるため、TrueForAll メソッドは True を返しました。

まとめ

TrueForAll メソッドを使えば、for文やforeach文を自前で書くことなく、リスト全体が特定の条件を満たしているかどうかを簡潔に判定できます。なお、LINQの All メソッド(例:list.All(x => x % 10 == 0))を使用しても同様の判定が可能です。用途に応じて使い分けるとよいでしょう。

  1. Pythonでリストのすべての要素に指定した数値を加算する方法

    リストのすべての要素に対して、指定した数値を加算したい場合には、リスト内包表記を使うのが最もシンプルで効率的な方法です。forループをわざわざ書かなくても、1行のコードで処理を実現できます。サンプルコード以下に具体的な実装例を示します。my_list = [25,36, 75, 36, 17, 7, 8, 0] print ("The list is :") print(my_list) my_key = 6 my_result = [x + my_key for x in my_list] print ("The resultant list is :&

  2. Pythonでリスト内の各要素の出現回数をサブリストとして作成する方法

    Pythonでは、数値を要素とするリストを扱う際に、同じ値が複数回出現することがよくあります。この記事では、リスト内の各要素とその出現回数(頻度)をペアにしたサブリストを作成する方法を、2つのアプローチで解説します。 方法1:forループとappendを使う まずは基本的な方法です。リスト内の各要素について、それ以降のすべての要素と比較し、一致するものがあればカウントを増やしていきます。最終的に「要素」と「その出現回数」を組み合わせたサブリストのリストを作成します。 コード例 def occurrences(list_in): result = [] checked = []