Partager via


Queryable.Where Méthode

Définition

Filtre une séquence de valeurs basée sur un prédicat.

Surcharges

Nom Description
Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

Filtre une séquence de valeurs basée sur un prédicat.

Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)

Filtre une séquence de valeurs basée sur un prédicat. L’index de chaque élément est utilisé dans la logique de la fonction de prédicat.

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

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

Filtre une séquence de valeurs basée sur un prédicat.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ Where(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, bool> ^> ^ predicate);
public static System.Linq.IQueryable<TSource> Where<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
public static System.Linq.IQueryable<TSource> Where<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);
static member Where : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, bool>> -> System.Linq.IQueryable<'Source>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
static member Where : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, bool>> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function Where(Of TSource) (source As IQueryable(Of TSource), predicate As Expression(Of Func(Of TSource, Boolean))) As IQueryable(Of TSource)

Paramètres de type

TSource

Type des éléments de source.

Paramètres

source
IQueryable<TSource>

À IQueryable<T> filtrer.

predicate
Expression<Func<TSource,Boolean>>

Fonction permettant de tester chaque élément pour une condition.

Retours

IQueryable<TSource>

Qui IQueryable<T> contient des éléments de la séquence d’entrée qui répondent à la condition spécifiée par predicate.

Attributs

Exceptions

source ou predicate est null.

Exemples

L’exemple de code suivant montre comment utiliser Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) pour filtrer une séquence.

List<string> fruits =
    new List<string> { "apple", "passionfruit", "banana", "mango",
                       "orange", "blueberry", "grape", "strawberry" };

// Get all strings whose length is less than 6.
IEnumerable<string> query =
    fruits.AsQueryable().Where(fruit => fruit.Length < 6);

foreach (string fruit in query)
    Console.WriteLine(fruit);

/*
    This code produces the following output:

    apple
    mango
    grape
*/
Dim fruits As New List(Of String)(New String() _
                        {"apple", "passionfruit", "banana", "mango", _
                         "orange", "blueberry", "grape", "strawberry"})

' Get all strings whose length is less than 6.
Dim query = fruits.AsQueryable().Where(Function(fruit) fruit.Length < 6)

' Display the results.
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
    output.AppendLine(fruit)
Next
MsgBox(output.ToString())

' This code produces the following output:

' apple
' mango
' grape

Remarques

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

La Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) méthode génère un qui représente l’appel MethodCallExpressionWhere<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) lui-même en tant que méthode générique construite. Il passe ensuite la MethodCallExpressionCreateQuery(Expression) méthode de l’objet IQueryProvider représenté par la Provider propriété du source paramètre.

Le comportement de requête qui se produit suite à l’exécution d’une arborescence d’expressions qui représente l’appel Where<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 retourne les éléments à partir de source qui répondent à la condition spécifiée par predicate.

S’applique à

Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)

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

Filtre une séquence de valeurs basée sur un prédicat. L’index de chaque élément est utilisé dans la logique de la fonction de prédicat.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ Where(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, int, bool> ^> ^ predicate);
public static System.Linq.IQueryable<TSource> Where<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int,bool>> predicate);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
public static System.Linq.IQueryable<TSource> Where<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int,bool>> predicate);
static member Where : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, int, bool>> -> System.Linq.IQueryable<'Source>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
static member Where : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, int, bool>> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function Where(Of TSource) (source As IQueryable(Of TSource), predicate As Expression(Of Func(Of TSource, Integer, Boolean))) As IQueryable(Of TSource)

Paramètres de type

TSource

Type des éléments de source.

Paramètres

source
IQueryable<TSource>

À IQueryable<T> filtrer.

predicate
Expression<Func<TSource,Int32,Boolean>>

Fonction permettant de tester chaque élément pour une condition ; le deuxième paramètre de la fonction représente l’index de l’élément dans la séquence source.

Retours

IQueryable<TSource>

Qui IQueryable<T> contient des éléments de la séquence d’entrée qui répondent à la condition spécifiée par predicate.

Attributs

Exceptions

source ou predicate est null.

Exemples

L’exemple de code suivant montre comment filtrer Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) une séquence en fonction d’un prédicat qui incorpore l’index de chaque élément.

int[] numbers = { 0, 30, 20, 15, 90, 85, 40, 75 };

// Get all the numbers that are less than or equal to
// the product of their index in the array and 10.
IEnumerable<int> query =
    numbers.AsQueryable()
    .Where((number, index) => number <= index * 10);

foreach (int number in query)
    Console.WriteLine(number);

/*
    This code produces the following output:

    0
    20
    15
    40
*/
Dim numbers() As Integer = {0, 30, 20, 15, 90, 85, 40, 75}

' Get all the numbers that are less than or equal to
' the product of their index in the array and 10.
Dim query = numbers.AsQueryable() _
    .Where(Function(number, index) number <= index * 10)

' Display the results.
Dim output As New System.Text.StringBuilder
For Each number As Integer In query
    output.AppendLine(number)
Next
MsgBox(output.ToString())

' This code produces the following output:

' 0
' 20
' 15
' 40

Remarques

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

La Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) méthode génère un qui représente l’appel MethodCallExpressionWhere<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) lui-même en tant que méthode générique construite. Il passe ensuite la MethodCallExpressionCreateQuery(Expression) méthode de l’objet IQueryProvider représenté par la Provider propriété du source paramètre.

Le comportement de requête qui se produit suite à l’exécution d’une arborescence d’expressions qui représente l’appel Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il retourne les éléments à partir de source qui répondent à la condition spécifiée par predicate. L’index de chaque élément source est fourni en tant que deuxième argument à predicate.

S’applique à