Queryable.Where Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Filtre une séquence de valeurs selon un prédicat.
Surcharges
Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) |
Filtre une séquence de valeurs selon un prédicat. |
Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) |
Filtre une séquence de valeurs selon 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
Filtre une séquence de valeurs selon 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);
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
Le 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 par rapport à une condition.
Retours
IQueryable<T> qui contient les éléments de la séquence d'entrée qui satisfont à la condition spécifiée par predicate
.
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 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 Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) méthode génère un MethodCallExpression qui représente l’appel Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) de lui-même en tant que méthode générique construite. Il passe ensuite le MethodCallExpression à la CreateQuery(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 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 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
Filtre une séquence de valeurs selon 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);
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
Le 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 par rapport à 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<T> qui contient les éléments de la séquence d'entrée qui satisfont à la condition spécifiée par predicate
.
Exceptions
source
ou predicate
est null
.
Exemples
L’exemple de code suivant montre comment utiliser Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) pour filtrer une séquence basée sur 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 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 Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) méthode génère un MethodCallExpression qui représente l’appel Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) de lui-même en tant que méthode générique construite. Il passe ensuite le MethodCallExpression à la CreateQuery(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 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 de source
qui répondent à la condition spécifiée par predicate
. L’index de chaque élément source est fourni comme deuxième argument de predicate
.