List<T>.TrueForAll(Predicate<T>) メソッド

定義

List<T> 内のすべての要素が、指定した述語によって定義される条件に一致するかどうかを調べます。

C#
public bool TrueForAll (Predicate<T> match);

パラメーター

match
Predicate<T>

要素の条件を定義する Predicate<T> デリゲート。

戻り値

List<T> 内のすべての要素が、指定した述語によって定義される条件に一致する場合は true。それ以外の場合は false。 リストに要素がない場合、戻り値は true です。

例外

matchnullです。

次の例では、 メソッドと、ジェネリック デリゲートを TrueForAll 使用 Predicate<T> する他のいくつかのメソッドを示します。

8 個の恐竜の名前を含む文字列の A List<T> が作成され、そのうちの 2 つは (位置 1 と 5 の位置) 末尾は "saurus" です。 この例では、 という名前 EndsWithSaurusの検索述語メソッドも定義します。このメソッドは、文字列パラメーターを受け取り、入力文字列が "saurus" で終わるかどうかを示すブール値を返します。

メソッドは TrueForAll 最初からリストを走査し、各要素を メソッドに順番に EndsWithSaurus 渡します。 メソッドが を返すと、 EndsWithSaurus 検索は停止します false

注意

C# と Visual Basic では、デリゲート (Predicate(Of String)Visual Basic では) をPredicate<string>明示的に作成する必要はありません。 これらの言語は、コンテキストから正しいデリゲートを推論し、自動的に作成します。

C#
using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        List<string> dinosaurs = new List<string>();

        dinosaurs.Add("Compsognathus");
        dinosaurs.Add("Amargasaurus");
        dinosaurs.Add("Oviraptor");
        dinosaurs.Add("Velociraptor");
        dinosaurs.Add("Deinonychus");
        dinosaurs.Add("Dilophosaurus");
        dinosaurs.Add("Gallimimus");
        dinosaurs.Add("Triceratops");

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nTrueForAll(EndsWithSaurus): {0}",
            dinosaurs.TrueForAll(EndsWithSaurus));

        Console.WriteLine("\nFind(EndsWithSaurus): {0}",
            dinosaurs.Find(EndsWithSaurus));

        Console.WriteLine("\nFindLast(EndsWithSaurus): {0}",
            dinosaurs.FindLast(EndsWithSaurus));

        Console.WriteLine("\nFindAll(EndsWithSaurus):");
        List<string> sublist = dinosaurs.FindAll(EndsWithSaurus);

        foreach(string dinosaur in sublist)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine(
            "\n{0} elements removed by RemoveAll(EndsWithSaurus).",
            dinosaurs.RemoveAll(EndsWithSaurus));

        Console.WriteLine("\nList now contains:");
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nExists(EndsWithSaurus): {0}",
            dinosaurs.Exists(EndsWithSaurus));
    }

    // Search predicate returns true if a string ends in "saurus".
    private static bool EndsWithSaurus(String s)
    {
        return s.ToLower().EndsWith("saurus");
    }
}

/* This code example produces the following output:

Compsognathus
Amargasaurus
Oviraptor
Velociraptor
Deinonychus
Dilophosaurus
Gallimimus
Triceratops

TrueForAll(EndsWithSaurus): False

Find(EndsWithSaurus): Amargasaurus

FindLast(EndsWithSaurus): Dilophosaurus

FindAll(EndsWithSaurus):
Amargasaurus
Dilophosaurus

2 elements removed by RemoveAll(EndsWithSaurus).

List now contains:
Compsognathus
Oviraptor
Velociraptor
Deinonychus
Gallimimus
Triceratops

Exists(EndsWithSaurus): False
 */

注釈

Predicate<T>は、渡されたオブジェクトがデリゲートで定義されている条件と一致する場合に を返すtrueメソッドへのデリゲートです。 現在 List<T> の の要素は個別にデリゲートに Predicate<T> 渡され、デリゲートが任意の要素に対して を返 false すと処理が停止されます。 要素は順番に処理され、すべての呼び出しは 1 つのスレッドで行われます。

このメソッドは O(n) 操作で、 n は です Count

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

こちらもご覧ください