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 los elementos de una secuencia siempre que el valor de una condición especificada sea true y luego omite los elementos restantes.
Sobrecargas
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Devuelve los elementos de una secuencia en tanto que el valor de una condición especificada sea true. El índice del elemento se usa en la lógica de la función de predicado. |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Devuelve los elementos de una secuencia en tanto que el valor de una condición especificada sea true. |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
- Source:
- Take.cs
- Source:
- Take.cs
- Source:
- Take.cs
Devuelve los elementos de una secuencia en tanto que el valor de una condición especificada sea true. 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 cuyos elementos se van a devolver.
Función que va a probar cada elemento de origen para determinar si satisface una condición; el segundo parámetro de la función representa el índice del elemento de origen.
Devoluciones
IEnumerable<T> que contiene los elementos de la secuencia de entrada que se encuentran antes del elemento que no 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,Int32,Boolean>) para devolver elementos desde el principio de una secuencia siempre que se cumpla una condición que use el índice del elemento.
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 GetEnumerator
método o mediante foreach
en C# o For Each
en Visual Basic.
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 complementarios funcionales. Dada una secuencia coll
de colección y una función p
pura, concatenando los resultados de coll.TakeWhile(p)
y coll.SkipWhile(p)
produce la misma secuencia que coll
.
En la sintaxis de la expresión de consulta de Visual Basic, una Take While
cláusula se traduce en una invocación de TakeWhile.
Consulte también
Se aplica a
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
- Source:
- Take.cs
- Source:
- Take.cs
- Source:
- Take.cs
Devuelve los elementos de una secuencia en tanto que el valor de una condición especificada sea true.
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 cuyos elementos se van a devolver.
Devoluciones
IEnumerable<T> que contiene los elementos de la secuencia de entrada que se encuentran antes del elemento que no 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 GetEnumerator
método o mediante foreach
en C# o For Each
en Visual Basic.
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 complementarios funcionales. Dada una secuencia coll
de colección y una función p
pura, concatenando los resultados de coll.TakeWhile(p)
y coll.SkipWhile(p)
produce la misma secuencia que coll
.
En la sintaxis de la expresión de consulta de Visual Basic, una Take While
cláusula se traduce en una invocación de TakeWhile.