Queryable.TakeWhile Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Returns elements from a sequence as long as a specified condition is true, and then skips the remaining elements.
Overloads
| Name | Description |
|---|---|
|
TakeWhile |
Returns elements from a sequence as long as a specified condition is true. |
|
TakeWhile |
Returns elements from a sequence as long as a specified condition is true. The element's index is used in the logic of the predicate function. |
TakeWhile(IQueryable, Expression>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
Returns elements from a sequence as long as a specified condition is true.
public:
generic
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable ^ TakeWhile(System::Linq::IQueryable ^ source, System::Linq::Expressions::Expression ^> ^ predicate);
public static System.Linq.IQueryable TakeWhile(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
public static System.Linq.IQueryable TakeWhile(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate);
static member TakeWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression> -> System.Linq.IQueryable<'Source>
[]
static member TakeWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression> -> System.Linq.IQueryable<'Source>
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
The type of the elements of source.
Parameters
- source
-
IQueryable
The sequence to return elements from.
- predicate
-
Expression<Func
Boolean>>
A function to test each element for a condition.
Returns
An IQueryablepredicate no longer passes.
- Attributes
Exceptions
source or predicate is null.
Examples
The following code example demonstrates how to use TakeWhile
string[] fruits = { "apple", "banana", "mango", "orange",
"passionfruit", "grape" };
// Take strings from the array until a string
// that is equal to "orange" is found.
IEnumerable 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
Remarks
This method has at least one parameter of type Expression
The TakeWhilesource parameter.
The query behavior that occurs as a result of executing an expression tree that represents calling TakeWhilesource parameter. The expected behavior is that it applies predicate to each element in source until it finds an element for which predicate returns false. It returns all the elements up until that point.
Applies to
TakeWhile(IQueryable, Expression>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
Returns elements from a sequence as long as a specified condition is true. The element's index is used in the logic of the predicate function.
public:
generic
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable ^ TakeWhile(System::Linq::IQueryable ^ source, System::Linq::Expressions::Expression ^> ^ predicate);
public static System.Linq.IQueryable TakeWhile(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
public static System.Linq.IQueryable TakeWhile(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate);
static member TakeWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression> -> System.Linq.IQueryable<'Source>
[]
static member TakeWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression> -> System.Linq.IQueryable<'Source>
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
The type of the elements of source.
Parameters
- source
-
IQueryable
The sequence to return elements from.
- predicate
-
Expression<Func
Int32,Boolean>>
A function to test each element for a condition; the second parameter of the function represents the index of the element in the source sequence.
Returns
An IQueryablepredicate no longer passes.
- Attributes
Exceptions
source or predicate is null.
Examples
The following code example demonstrates how to use TakeWhile
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 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
Remarks
This method has at least one parameter of type Expression
The TakeWhilesource parameter.
The query behavior that occurs as a result of executing an expression tree that represents calling TakeWhilesource parameter. The expected behavior is that it applies predicate to each element in source until it finds an element for which predicate returns false. It returns all the elements up until that point. The index of each source element is provided as the second argument to predicate.