Enumerable.Where Enumerable.Where Enumerable.Where Enumerable.Where Method

Définition

Filtre une séquence de valeurs selon un prédicat.Filters a sequence of values based on a predicate.

Surcharges

Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

Filtre une séquence de valeurs selon un prédicat.Filters a sequence of values based on a predicate. L’index de chaque élément est utilisé dans la logique de la fonction de prédicat.Each element's index is used in the logic of the predicate function.

Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Filtre une séquence de valeurs selon un prédicat.Filters a sequence of values based on a predicate.

Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

Filtre une séquence de valeurs selon un prédicat.Filters a sequence of values based on a predicate. L’index de chaque élément est utilisé dans la logique de la fonction de prédicat.Each element's index is used in the logic of the predicate function.

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.The type of the elements of source.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> à filtrer.An IEnumerable<T> to filter.

predicate
Func<TSource,Int32,Boolean>

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.A function to test each source element for a condition; the second parameter of the function represents the index of the source element.

Retours

IEnumerable<TSource>

IEnumerable<T> qui contient des éléments de la séquence d'entrée satisfaisant à la condition.An IEnumerable<T> that contains elements from the input sequence that satisfy the condition.

Exceptions

source ou predicate a la valeur null.source or predicate is null.

Exemples

L’exemple de code suivant montre comment utiliser Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) pour filtrer une séquence selon un prédicat qui implique l’index de chaque élément.The following code example demonstrates how to use Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) to filter a sequence based on a predicate that involves the index of each element.

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
MsgBox(output.ToString())

' This code produces the following output:
'
' 0
' 20
' 15
' 40

Remarques

Cette méthode est implémentée à l’aide de l’exécution différée.This method is implemented by using deferred execution. L’exécution valeur de retour est un objet qui stocke toutes les informations qui sont requis pour effectuer l’action.The immediate return value is an object that stores all the information that is required to perform the action. La requête représentée par cette méthode n’est pas exécutée jusqu'à ce que l’objet est énumérée en appelant son GetEnumerator méthode directement ou en utilisant foreach en Visual c# ou For Each en Visual Basic.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

Le premier argument de predicate représente l’élément à tester.The first argument of predicate represents the element to test. Le deuxième argument représente l’index de base zéro de l’élément dans source.The second argument represents the zero-based index of the element within source.

Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Filtre une séquence de valeurs selon un prédicat.Filters a sequence of values based on a predicate.

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.The type of the elements of source.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> à filtrer.An IEnumerable<T> to filter.

predicate
Func<TSource,Boolean>

Fonction permettant de tester chaque élément par rapport à une condition.A function to test each element for a condition.

Retours

IEnumerable<TSource>

IEnumerable<T> qui contient des éléments de la séquence d'entrée satisfaisant à la condition.An IEnumerable<T> that contains elements from the input sequence that satisfy the condition.

Exceptions

source ou predicate a la valeur null.source or predicate is null.

Exemples

L’exemple de code suivant montre comment utiliser Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) pour filtrer une séquence.The following code example demonstrates how to use Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) to filter a sequence.

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
MsgBox(output.ToString())

' This code produces the following output:
'
' apple
' mango
' grape

Remarques

Cette méthode est implémentée à l’aide de l’exécution différée.This method is implemented by using deferred execution. L’exécution valeur de retour est un objet qui stocke toutes les informations qui sont requis pour effectuer l’action.The immediate return value is an object that stores all the information that is required to perform the action. La requête représentée par cette méthode n’est pas exécutée jusqu'à ce que l’objet est énumérée en appelant son GetEnumerator méthode directement ou en utilisant foreach en Visual c# ou For Each en Visual Basic.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

Dans la syntaxe d’expression de requête, un where (Visual c#) ou Where les clause (Visual Basic) se traduit par un appel à Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>).In query expression syntax, a where (Visual C#) or Where (Visual Basic) clause translates to an invocation of Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>).

Voir aussi

S’applique à