Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Queryable.All<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>)

 

Data di pubblicazione: ottobre 2016

Determina se tutti gli elementi di una sequenza soddisfano una condizione.

Spazio dei nomi:   System.Linq
Assembly:  System.Core (in System.Core.dll)

public static bool All<TSource>(
	this IQueryable<TSource> source,
	Expression<Func<TSource, bool>> predicate
)

Parametri

source
Type: System.Linq.IQueryable<TSource>

Sequenza ai cui elementi per verificare una condizione.

predicate
Type: System.Linq.Expressions.Expression<Func<TSource, Boolean>>

Funzione per testare ogni elemento rispetto a una condizione.

Valore restituito

Type: System.Boolean

true Se ogni elemento della sequenza di origine supera il test nel predicato specificato o se la sequenza è vuota. in caso contrario, false.

Parametri tipo

TSource

Tipo degli elementi di source.

Exception Condition
ArgumentNullException

source o predicate è null.

Questo metodo contiene almeno un parametro di tipo Expression<TDelegate> il cui argomento di tipo è uno del Func<T, TResult> tipi. Per questi parametri, è possibile passare un'espressione lambda e verrà compilato in un Expression<TDelegate>.

Il All<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) metodo genera un MethodCallExpression che rappresenta una chiamata All<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) stesso come un metodo generico costruito. Passa quindi il MethodCallExpression per il Execute<TResult>(Expression) metodo il IQueryProvider rappresentato dal Provider proprietà del source parametro.

Il comportamento della query che si verifica in seguito all'esecuzione di una struttura ad albero dell'espressione che rappresenta una chiamata All<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) dipende dall'implementazione del source tipo del parametro. Il comportamento previsto è che determina se tutti gli elementi in source soddisfano la condizione predicate.

Esempio di codice seguente viene illustrato come utilizzare All<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) per determinare se tutti gli elementi in una sequenza soddisfano una condizione.

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

public static void AllEx1()
{
    // 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.AsQueryable().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'. 

Il valore booleano che il All<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) restituisce in genere viene utilizzato nel predicato di un where clausola (Where clausola Visual Basic) o una chiamata diretta al Where<TSource> metodo. Nell'esempio seguente viene illustrato l'utilizzo di All metodo.

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.AsQueryable().All(pet => pet.Age > 5)
                                select person.LastName;

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

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

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.1
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: