Enumerable.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>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Filtre une séquence de valeurs selon un prédicat. |
Where<TSource>(IEnumerable<TSource>, 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>(IEnumerable<TSource>, Func<TSource,Boolean>)
- Source:
- Where.cs
- Source:
- Where.cs
- Source:
- Where.cs
Filtre une séquence de valeurs selon un prédicat.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ Where(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> Where<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member Where : seq<'Source> * Func<'Source, bool> -> seq<'Source>
<Extension()>
Public Function Where(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Boolean)) As IEnumerable(Of TSource)
Paramètres de type
- TSource
Le type des éléments de source
.
Paramètres
- source
- IEnumerable<TSource>
IEnumerable<T> à filtrer.
Fonction permettant de tester chaque élément par rapport à une condition.
Retours
IEnumerable<T> qui contient des éléments de la séquence d'entrée satisfaisant à la condition.
Exceptions
source
ou predicate
est null
.
Exemples
L’exemple de code suivant montre comment utiliser Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) pour filtrer une séquence.
List<string> fruits =
new List<string> { "apple", "passionfruit", "banana", "mango",
"orange", "blueberry", "grape", "strawberry" };
IEnumerable<string> query = fruits.Where(fruit => fruit.Length < 6);
foreach (string fruit in query)
{
Console.WriteLine(fruit);
}
/*
This code produces the following output:
apple
mango
grape
*/
' Create a list of strings.
Dim fruits As New List(Of String)(New String() _
{"apple", "passionfruit", "banana", "mango",
"orange", "blueberry", "grape", "strawberry"})
' Restrict the results to those strings whose
' length is less than six.
Dim query As IEnumerable(Of String) =
fruits.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
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' apple
' mango
' grape
Remarques
Cette méthode est implémentée à l’aide d’une exécution différée. La valeur de retour immédiat est un objet qui stocke toutes les informations nécessaires à l’exécution de l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet n’est pas énuméré soit en appelant directement sa GetEnumerator
méthode, soit en utilisant foreach
en C# ou For Each
en Visual Basic.
Dans la syntaxe de l’expression de requête, une where
clause (C#) ou Where
(Visual Basic) se traduit par un appel de Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>).
Voir aussi
S’applique à
Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
- Source:
- Where.cs
- Source:
- Where.cs
- Source:
- Where.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::Collections::Generic::IEnumerable<TSource> ^ Where(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, int, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> Where<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,bool> predicate);
static member Where : seq<'Source> * Func<'Source, int, bool> -> seq<'Source>
<Extension()>
Public Function Where(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Integer, Boolean)) As IEnumerable(Of TSource)
Paramètres de type
- TSource
Le type des éléments de source
.
Paramètres
- source
- IEnumerable<TSource>
IEnumerable<T> à filtrer.
Fonction permettant de tester chaque élément source pour une condition ; le deuxième paramètre de la fonction représente l'index de l'élément source.
Retours
IEnumerable<T> qui contient des éléments de la séquence d'entrée satisfaisant à la condition.
Exceptions
source
ou predicate
est null
.
Exemples
L’exemple de code suivant montre comment utiliser Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) pour filtrer une séquence en fonction d’un prédicat qui implique l’index de chaque élément.
int[] numbers = { 0, 30, 20, 15, 90, 85, 40, 75 };
IEnumerable<int> query =
numbers.Where((number, index) => number <= index * 10);
foreach (int number in query)
{
Console.WriteLine(number);
}
/*
This code produces the following output:
0
20
15
40
*/
' Create an array of integers.
Dim numbers() As Integer = {0, 30, 20, 15, 90, 85, 40, 75}
' Restrict the results to those numbers whose
' values are less than or equal to their index times 10.
Dim query As IEnumerable(Of Integer) =
numbers.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
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' 0
' 20
' 15
' 40
Remarques
Cette méthode est implémentée à l’aide d’une exécution différée. La valeur de retour immédiat est un objet qui stocke toutes les informations nécessaires à l’exécution de l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet n’est pas énuméré soit en appelant directement sa GetEnumerator
méthode, soit en utilisant foreach
en C# ou For Each
en Visual Basic.
Le premier argument de predicate
représente l’élément à tester. Le deuxième argument représente l’index de base zéro de l’élément dans source
.