Queryable.TakeWhile Methode

Definitie

Retourneert elementen uit een reeks zolang een opgegeven voorwaarde waar is en slaat vervolgens de resterende elementen over.

Overloads

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

Retourneert elementen uit een reeks zolang een opgegeven voorwaarde waar is. De index van het element wordt gebruikt in de logica van de predicaatfunctie.

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

Retourneert elementen uit een reeks zolang een opgegeven voorwaarde waar is.

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

Retourneert elementen uit een reeks zolang een opgegeven voorwaarde waar is. De index van het element wordt gebruikt in de logica van de predicaatfunctie.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ TakeWhile(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, int, bool> ^> ^ predicate);
public static System.Linq.IQueryable<TSource> TakeWhile<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int,bool>> predicate);
static member TakeWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, int, bool>> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function TakeWhile(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>

De reeks waaruit elementen moeten worden geretourneerd.

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> met elementen uit de invoervolgorde die plaatsvindt vóór het element waarop de test die is opgegeven, predicate niet meer wordt doorgegeven.

Uitzonderingen

source of predicate is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) u elementen kunt retourneren vanaf het begin van een reeks, zolang een voorwaarde die gebruikmaakt van de index van het element waar is.

string[] fruits = { "apple", "passionfruit", "banana", "mango",
                      "orange", "blueberry", "grape", "strawberry" };

// Take strings from the array until a string whose length
// is less than its index in the array is found.
IEnumerable<string> query =
    fruits.AsQueryable()
    .TakeWhile((fruit, index) => fruit.Length >= index);

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

/*
    This code produces the following output:

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

' Take strings from the array until a string whose length
' is less than its index in the array is found.
Dim query = fruits.AsQueryable() _
    .TakeWhile(Function(fruit, index) fruit.Length >= index)

' 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
' passionfruit
' banana
' mango
' orange
' blueberry

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 TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) methode genereert een MethodCallExpression die zichzelf aanroept TakeWhile<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 TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) , is afhankelijk van de implementatie van het type source parameter. Het verwachte gedrag is dat het van toepassing is op predicate elk element in source totdat een element wordt gevonden waarvoor predicate wordt geretourneerd false. Hiermee worden alle elementen tot dat punt geretourneerd. De index van elk bronelement wordt opgegeven als het tweede argument voor predicate.

Van toepassing op

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

Retourneert elementen uit een reeks zolang een opgegeven voorwaarde waar is.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ TakeWhile(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, bool> ^> ^ predicate);
public static System.Linq.IQueryable<TSource> TakeWhile<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);
static member TakeWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, bool>> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function TakeWhile(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>

De reeks waaruit elementen moeten worden geretourneerd.

predicate
Expression<Func<TSource,Boolean>>

Een functie om elk element voor een voorwaarde te testen.

Retouren

IQueryable<TSource>

Een IQueryable<T> met elementen uit de invoervolgorde die plaatsvindt vóór het element waarop de test die is opgegeven, predicate niet meer wordt doorgegeven.

Uitzonderingen

source of predicate is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) u elementen vanaf het begin van een reeks retourneert zolang aan een voorwaarde wordt voldaan.

string[] fruits = { "apple", "banana", "mango", "orange",
                      "passionfruit", "grape" };

// Take strings from the array until a string
// that is equal to "orange" is found.
IEnumerable<string> query =
    fruits.AsQueryable()
    .TakeWhile(fruit => String.Compare("orange", fruit, true) != 0);

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

/*
    This code produces the following output:

    apple
    banana
    mango
*/
Dim fruits() As String = {"apple", "banana", "mango", "orange", _
                      "passionfruit", "grape"}

' Take strings from the array until a string
' that is equal to "orange" is found.
Dim query = fruits.AsQueryable() _
    .TakeWhile(Function(fruit) String.Compare("orange", fruit, True) <> 0)

Dim output As New System.Text.StringBuilder
For Each fruit As String In query
    output.AppendLine(fruit)
Next

' Display the output.
MsgBox(output.ToString())

'This code produces the following output:

'apple
'banana
'mango

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 TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) methode genereert een MethodCallExpression die zichzelf aanroept TakeWhile<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 TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) , is afhankelijk van de implementatie van het type source parameter. Het verwachte gedrag is dat het van toepassing is op predicate elk element in source totdat een element wordt gevonden waarvoor predicate wordt geretourneerd false. Hiermee worden alle elementen tot dat punt geretourneerd.

Van toepassing op