Leer en inglés

Compartir a través de


Enumerable.All<TSource> Método

Definición

Determina si todos los elementos de una secuencia satisfacen una condición.

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

Parámetros de tipo

TSource

Tipo de los elementos de source.

Parámetros

source
IEnumerable<TSource>

IEnumerable<T> que contiene los elementos a los que se va a aplicar el predicado.

predicate
Func<TSource,Boolean>

Función para probar cada elemento de una condición.

Devoluciones

true si todos los elementos de la secuencia de origen pasan la prueba del predicado especificado o si la secuencia está vacía; de lo contrario, false.

Excepciones

source o predicate es null.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar All para determinar si todos los elementos de una secuencia cumplen una condición. La variable allStartWithB es true si todos los nombres de mascotas comienzan por "B" o si la pets matriz está vacía.

C#
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'.

El valor booleano que devuelve el All método se usa normalmente en el predicado de una where cláusula (Where cláusula en Visual Basic) o en una llamada directa al Where método . En el ejemplo siguiente se muestra este uso del All método .

C#
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
     */
}

Comentarios

Nota

Este método no devuelve todos los elementos de una colección. En su lugar, determina si todos los elementos de una colección cumplen una condición.

La enumeración de source se detiene en cuanto se puede determinar el resultado.

En la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into All() cláusula se traduce en una invocación de All.

Se aplica a

Producto Versiones
.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

Consulte también