Číst v angličtině

Sdílet prostřednictvím


Enumerable.All<TSource> Metoda

Definice

Určuje, zda všechny prvky sekvence splňují podmínku.

public static bool All<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);

Parametry typu

TSource

Typ elementů .source

Parametry

source
IEnumerable<TSource>

Obsahuje IEnumerable<T> prvky, na které se má predikát použít.

predicate
Func<TSource,Boolean>

Funkce pro otestování každého prvku pro podmínku.

Návraty

truejestliže každý prvek zdrojové sekvence projde testem v zadaném predikátu nebo pokud je posloupnost prázdná; v opačném případě . false

Výjimky

source nebo predicate je null.

Příklady

Následující příklad kódu ukazuje, jak použít All k určení, zda všechny prvky v sekvenci splňují podmínku. Proměnná allStartWithB je true, pokud všechny názvy domácích zvířat začínají na "B" nebo pokud pets je pole prázdné.

class Pet
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public static void AllEx()
{
    // Create an array of Pets.
    Pet[] pets = { new Pet { Name="Barley", Age=10 },
                   new Pet { Name="Boots", Age=4 },
                   new Pet { Name="Whiskers", Age=6 } };

    // Determine whether all pet names
    // in the array start with 'B'.
    bool allStartWithB = pets.All(pet =>
                                      pet.Name.StartsWith("B"));

    Console.WriteLine(
        "{0} pet names start with 'B'.",
        allStartWithB ? "All" : "Not all");
}

// This code produces the following output:
//
//  Not all pet names start with 'B'.

Logická hodnota, kterou metoda vrací, All se obvykle používá v predikátu where klauzule (Where klauzule v jazyce Visual Basic) nebo v přímém volání Where metody. Následující příklad ukazuje toto použití All metody.

class Pet
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Person
{
    public string LastName { get; set; }
    public Pet[] Pets { get; set; }
}

public static void AllEx2()
{
    List<Person> people = new List<Person>
        { new Person { LastName = "Haas",
                       Pets = new Pet[] { new Pet { Name="Barley", Age=10 },
                                          new Pet { Name="Boots", Age=14 },
                                          new Pet { Name="Whiskers", Age=6 }}},
          new Person { LastName = "Fakhouri",
                       Pets = new Pet[] { new Pet { Name = "Snowball", Age = 1}}},
          new Person { LastName = "Antebi",
                       Pets = new Pet[] { new Pet { Name = "Belle", Age = 8} }},
          new Person { LastName = "Philips",
                       Pets = new Pet[] { new Pet { Name = "Sweetie", Age = 2},
                                          new Pet { Name = "Rover", Age = 13}} }
        };

    // Determine which people have pets that are all older than 5.
    IEnumerable<string> names = from person in people
                                where person.Pets.All(pet => pet.Age > 5)
                                select person.LastName;

    foreach (string name in names)
    {
        Console.WriteLine(name);
    }

    /* This code produces the following output:
     *
     * Haas
     * Antebi
     */
}

Poznámky

Poznámka

Tato metoda nevrací všechny prvky kolekce. Místo toho určuje, zda všechny prvky kolekce splňují podmínku.

source Výčet je zastaven, jakmile lze zjistit výsledek.

V syntaxi výrazu dotazu jazyka Visual Basic se Aggregate Into All() klauzule překládá na vyvolání výrazu All.

Platí pro

Produkt Verze
.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 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

Viz také