Lire en anglais

Partager via


Queryable.Any Méthode

Définition

Détermine si les éléments d'une séquence IQueryable<T> existent ou satisfont à une condition.

Surcharges

Any<TSource>(IQueryable<TSource>)

Détermine si une séquence contient des éléments.

Any<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

Détermine si des éléments d'une séquence satisfont à une condition.

Any<TSource>(IQueryable<TSource>)

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Détermine si une séquence contient des éléments.

C#
public static bool Any<TSource> (this System.Linq.IQueryable<TSource> source);

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IQueryable<TSource>

Séquence à vérifier pour y détecter l'absence de données.

Retours

true si la séquence source contient des éléments ; sinon, false.

Exceptions

source a la valeur null.

Exemples

L’exemple de code suivant montre comment utiliser Any<TSource>(IQueryable<TSource>) pour déterminer si une séquence contient des éléments.

C#
List<int> numbers = new List<int> { 1, 2 };

// Determine if the list contains any elements.
bool hasElements = numbers.AsQueryable().Any();

Console.WriteLine("The list {0} empty.",
    hasElements ? "is not" : "is");

// This code produces the following output:
//
// The list is not empty.

La valeur booléenne retournée par la Any<TSource>(IQueryable<TSource>) méthode est généralement utilisée dans le prédicat d’une where clause (Where clause en Visual Basic) ou dans un appel direct à la Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) méthode. L’exemple suivant illustre cette utilisation de la Any méthode.

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 AnyEx2()
{
    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 Person { LastName = "Philips",
                       Pets = new Pet[] { new Pet { Name = "Sweetie", Age = 2},
                                          new Pet { Name = "Rover", Age = 13}} }
        };

    // Determine which people have a non-empty Pet array.
    IEnumerable<string> names = from person in people
                                where person.Pets.AsQueryable().Any()
                                select person.LastName;

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

    /* This code produces the following output:

       Haas
       Fakhouri
       Philips
    */
}

Remarques

La Any<TSource>(IQueryable<TSource>) méthode génère un MethodCallExpression qui représente l’appel Any<TSource>(IQueryable<TSource>) en tant que méthode générique construite. Il passe ensuite à MethodCallExpression la Execute<TResult>(Expression) méthode du IQueryProvider représenté par la Provider propriété du source paramètre .

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Any<TSource>(IQueryable<TSource>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il détermine si source contient des éléments.

S’applique à

.NET 9 et autres versions
Produit Versions
.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 2.0, 2.1
UWP 10.0

Any<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Détermine si des éléments d'une séquence satisfont à une condition.

C#
public static bool Any<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IQueryable<TSource>

Séquence dont les éléments doivent être testés par rapport à une condition.

predicate
Expression<Func<TSource,Boolean>>

Fonction permettant de tester chaque élément par rapport à une condition.

Retours

true si des éléments de la séquence source réussissent le test dans le prédicat spécifié ; sinon, false.

Exceptions

source ou predicate est null.

Exemples

L’exemple de code suivant montre comment utiliser Any<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) pour déterminer si un élément d’une séquence satisfait à une condition.

C#
class Pet
{
    public string Name { get; set; }
    public int Age { get; set; }
    public bool Vaccinated { get; set; }
}

public static void AnyEx3()
{
    // Create an array of Pet objects.
    Pet[] pets =
        { new Pet { Name="Barley", Age=8, Vaccinated=true },
          new Pet { Name="Boots", Age=4, Vaccinated=false },
          new Pet { Name="Whiskers", Age=1, Vaccinated=false } };

    // Determine whether any pets over age 1 are also unvaccinated.
    bool unvaccinated =
        pets.AsQueryable().Any(p => p.Age > 1 && p.Vaccinated == false);

    Console.WriteLine(
        "There {0} unvaccinated animals over age one.",
        unvaccinated ? "are" : "are not any");
}

// This code produces the following output:
//
//  There are unvaccinated animals over age one.

Remarques

Cette méthode a au moins un paramètre de type Expression<TDelegate> dont l’argument type est l’un Func<T,TResult> des types. Pour ces paramètres, vous pouvez passer une expression lambda et elle sera compilée dans un Expression<TDelegate>.

La Any<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) méthode génère un MethodCallExpression qui représente l’appel Any<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) en tant que méthode générique construite. Il passe ensuite à MethodCallExpression la Execute<TResult>(Expression) méthode du IQueryProvider représenté par la Provider propriété du source paramètre .

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Any<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il détermine si l’un des éléments de source satisfait à la condition spécifiée par predicate.

S’applique à

.NET 9 et autres versions
Produit Versions
.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 2.0, 2.1
UWP 10.0