Queryable.Where Methode

Definitie

Hiermee filtert u een reeks waarden op basis van een predicaat.

Overloads

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

Hiermee filtert u een reeks waarden op basis van een predicaat. De index van elk element wordt gebruikt in de logica van de predicaatfunctie.

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

Hiermee filtert u een reeks waarden op basis van een predicaat.

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

Hiermee filtert u een reeks waarden op basis van een predicaat. De index van elk element wordt gebruikt in de logica van de predicaatfunctie.

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)

Type parameters

TSource

Het type van de elementen van source.

Parameters

source
IQueryable<TSource>

Een IQueryable<T> te filteren.

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

Een functie om elk element voor een voorwaarde te testen; de tweede parameter van de functie vertegenwoordigt de index van het element in de bronreeks.

Retouren

IQueryable<TSource>

Een IQueryable<T> die elementen uit de invoerreeks bevat die voldoen aan de voorwaarde die is opgegeven door predicate.

Uitzonderingen

source of predicate is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) u een reeks filtert op basis van een predicaat dat de index van elk element bevat.

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

Opmerkingen

Deze methode heeft ten minste één parameter van het type Expression<TDelegate> waarvan het typeargument een van de Func<T,TResult> typen is. Voor deze parameters kunt u een lambda-expressie doorgeven en deze wordt gecompileerd naar een Expression<TDelegate>.

De Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) methode genereert een MethodCallExpression die zichzelf aanroept Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) als een samengestelde algemene methode. Vervolgens wordt de MethodCallExpression methode doorgegeven aan de CreateQuery(Expression) methode van de IQueryProvider vertegenwoordigd door de Provider eigenschap van de source parameter.

Het querygedrag dat optreedt als gevolg van het uitvoeren van een expressiestructuur die aanroept Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) , is afhankelijk van de implementatie van het type source parameter. Het verwachte gedrag is dat de elementen worden geretourneerd die source voldoen aan de voorwaarde die is opgegeven door predicate. De index van elk bronelement wordt opgegeven als het tweede argument voor predicate.

Van toepassing op

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

Hiermee filtert u een reeks waarden op basis van een predicaat.

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)

Type parameters

TSource

Het type van de elementen van source.

Parameters

source
IQueryable<TSource>

Een IQueryable<T> te filteren.

predicate
Expression<Func<TSource,Boolean>>

Een functie om elk element voor een voorwaarde te testen.

Retouren

IQueryable<TSource>

Een IQueryable<T> die elementen uit de invoerreeks bevat die voldoen aan de voorwaarde die is opgegeven door predicate.

Uitzonderingen

source of predicate is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) u een reeks filtert.

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

Opmerkingen

Deze methode heeft ten minste één parameter van het type Expression<TDelegate> waarvan het typeargument een van de Func<T,TResult> typen is. Voor deze parameters kunt u een lambda-expressie doorgeven en deze wordt gecompileerd naar een Expression<TDelegate>.

De Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) methode genereert een MethodCallExpression die zichzelf aanroept Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) als een samengestelde algemene methode. Vervolgens wordt de MethodCallExpression methode doorgegeven aan de CreateQuery(Expression) methode van de IQueryProvider vertegenwoordigd door de Provider eigenschap van de source parameter.

Het querygedrag dat optreedt als gevolg van het uitvoeren van een expressiestructuur die aanroept Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) , is afhankelijk van de implementatie van het type source parameter. Het verwachte gedrag is dat de elementen worden geretourneerd die source voldoen aan de voorwaarde die is opgegeven door predicate.

Van toepassing op