Enumerable.TakeWhile Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve elementos de una secuencia siempre que una condición especificada sea true y, a continuación, omite los elementos restantes.
Sobrecargas
| Nombre | Description |
|---|---|
| TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Devuelve elementos de una secuencia siempre que se cumpla una condición especificada. |
| TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Devuelve elementos de una secuencia siempre que se cumpla una condición especificada. El índice del elemento se usa en la lógica de la función de predicado. |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
Devuelve elementos de una secuencia siempre que se cumpla una condición especificada.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ TakeWhile(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> TakeWhile<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member TakeWhile : seq<'Source> * Func<'Source, bool> -> seq<'Source>
<Extension()>
Public Function TakeWhile(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Boolean)) As IEnumerable(Of TSource)
Parámetros de tipo
- TSource
Tipo de los elementos de source.
Parámetros
- source
- IEnumerable<TSource>
Secuencia de la que se van a devolver elementos.
Devoluciones
que IEnumerable<T> contiene los elementos de la secuencia de entrada que se producen antes del elemento en el que ya no se supera la prueba.
Excepciones
source o predicate es null.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) para devolver elementos desde el principio de una secuencia siempre que se cumpla una condición.
string[] fruits = { "apple", "banana", "mango", "orange",
"passionfruit", "grape" };
IEnumerable<string> query =
fruits.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
*/
' Create an array of strings.
Dim fruits() As String =
{"apple", "banana", "mango", "orange", "passionfruit", "grape"}
' Take strings from the array until one of
' the strings matches "orange".
Dim query As IEnumerable(Of String) =
fruits.TakeWhile(Function(fruit) _
String.Compare("orange", fruit, True) <> 0)
' 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
' banana
' mango
Comentarios
Este método se implementa mediante la ejecución diferida. El valor devuelto inmediato es un objeto que almacena toda la información necesaria para realizar la acción. La consulta representada por este método no se ejecuta hasta que el objeto se enumera llamando directamente a su método />
El TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) método prueba cada elemento de source mediante predicate y produce el elemento si el resultado es true. La enumeración se detiene cuando la función de predicado devuelve false un elemento o cuando source no contiene más elementos.
Los TakeWhile métodos y SkipWhile son complementos funcionales. Dada una secuencia coll de colección y una función ppura , concatenando los resultados de coll.TakeWhile(p) y coll.SkipWhile(p) produce la misma secuencia que coll.
En Visual Basic sintaxis de expresión de consulta, una cláusula Take While se traduce en una invocación de TakeWhile.
Consulte también
- cláusula Take While (Visual Basic)
Se aplica a
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
Devuelve elementos de una secuencia siempre que se cumpla una condición especificada. El índice del elemento se usa en la lógica de la función de predicado.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ TakeWhile(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, int, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> TakeWhile<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,bool> predicate);
static member TakeWhile : seq<'Source> * Func<'Source, int, bool> -> seq<'Source>
<Extension()>
Public Function TakeWhile(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Integer, Boolean)) As IEnumerable(Of TSource)
Parámetros de tipo
- TSource
Tipo de los elementos de source.
Parámetros
- source
- IEnumerable<TSource>
Secuencia de la que se van a devolver elementos.
Función para probar cada elemento de origen de una condición; el segundo parámetro de la función representa el índice del elemento de origen.
Devoluciones
que IEnumerable<T> contiene elementos de la secuencia de entrada que se producen antes del elemento en el que la prueba ya no pasa.
Excepciones
source o predicate es null.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) para devolver elementos desde el principio de una secuencia siempre que una condición que use el índice del elemento sea true.
string[] fruits = { "apple", "passionfruit", "banana", "mango",
"orange", "blueberry", "grape", "strawberry" };
IEnumerable<string> query =
fruits.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
*/
' Create an array of strings.
Dim fruits() As String =
{"apple", "passionfruit", "banana", "mango",
"orange", "blueberry", "grape", "strawberry"}
' Take strings from the array until one
' of the string's lengths is greater than or
' equal to the string item's index in the array.
Dim query As IEnumerable(Of String) =
fruits.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
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' apple
' passionfruit
' banana
' mango
' orange
' blueberry
Comentarios
Este método se implementa mediante la ejecución diferida. El valor devuelto inmediato es un objeto que almacena toda la información necesaria para realizar la acción. La consulta representada por este método no se ejecuta hasta que el objeto se enumera llamando directamente a su método />
El TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) método prueba cada elemento de source mediante predicate y produce el elemento si el resultado es true. La enumeración se detiene cuando la función de predicado devuelve false un elemento o cuando source no contiene más elementos.
El primer argumento de predicate representa el elemento que se va a probar. El segundo argumento representa el índice de base cero del elemento dentro de source.
Los TakeWhile métodos y SkipWhile son complementos funcionales. Dada una secuencia coll de colección y una función ppura , concatenando los resultados de coll.TakeWhile(p) y coll.SkipWhile(p) produce la misma secuencia que coll.
En Visual Basic sintaxis de expresión de consulta, una cláusula Take While se traduce en una invocación de TakeWhile.
Consulte también
- cláusula Take While (Visual Basic)