Enumerable.TakeWhile Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce gli elementi da una sequenza finché la condizione specificata è soddisfatta, poi ignora gli elementi rimanenti.
Overload
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Restituisce elementi di una sequenza finché una condizione specificata è soddisfatta. L'indice dell'elemento viene usato nella logica della funzione predicativa. |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce elementi di una sequenza finché una condizione specificata è soddisfatta. |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
- Origine:
- Take.cs
- Origine:
- Take.cs
- Origine:
- Take.cs
Restituisce elementi di una sequenza finché una condizione specificata è soddisfatta. L'indice dell'elemento viene usato nella logica della funzione predicativa.
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)
Parametri di tipo
- TSource
Tipo degli elementi di source
.
Parametri
- source
- IEnumerable<TSource>
Sequenza dalla quale vengono restituiti gli elementi.
Funzione per verificare ogni elemento di origine per una condizione; il secondo parametro della funzione rappresenta l'indice dell'elemento di origine.
Restituisce
Oggetto IEnumerable<T> che contiene elementi dalla sequenza di input che precedono il primo elemento che non soddisfa il test.
Eccezioni
source
o predicate
è null
.
Esempio
Nell'esempio di codice seguente viene illustrato come usare TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) per restituire elementi dall'inizio di una sequenza finché una condizione che usa l'indice dell'elemento è 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
Commenti
Questo metodo viene implementato usando l'esecuzione posticipata. Il valore restituito immediato è un oggetto che archivia tutte le informazioni necessarie per eseguire l'azione. La query rappresentata da questo metodo non viene eseguita finché l'oggetto non viene enumerato chiamando il GetEnumerator
relativo metodo direttamente o usando foreach
in C# o For Each
in Visual Basic.
Il TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) metodo verifica ogni elemento di source
usando predicate
e restituisce l'elemento se il risultato è true
. L'enumerazione si arresta quando la funzione predicato restituisce false
per un elemento o quando source
non contiene più elementi.
Il primo argomento di predicate
rappresenta l'elemento da testare. Il secondo argomento rappresenta l'indice in base zero dell'elemento all'interno source
di .
I TakeWhile metodi e SkipWhile sono complementi funzionali. Dato una sequenza di raccolta e una funzione pura, concatenando i risultati di e coll.SkipWhile(p)
restituisce la stessa sequenza coll
di coll.TakeWhile(p)
coll
.p
Nella sintassi dell'espressione di query di Visual Basic, una Take While
clausola si traduce in una chiamata di TakeWhile.
Vedi anche
Si applica a
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
- Origine:
- Take.cs
- Origine:
- Take.cs
- Origine:
- Take.cs
Restituisce elementi di una sequenza finché una condizione specificata è soddisfatta.
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)
Parametri di tipo
- TSource
Tipo degli elementi di source
.
Parametri
- source
- IEnumerable<TSource>
Sequenza dalla quale vengono restituiti gli elementi.
Restituisce
Oggetto IEnumerable<T> che contiene gli elementi dalla sequenza di input che precedono il primo elemento che non soddisfa il test.
Eccezioni
source
o predicate
è null
.
Esempio
Nell'esempio di codice seguente viene illustrato come usare TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) per restituire elementi dall'inizio di una sequenza fino a quando una condizione è true.
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
Commenti
Questo metodo viene implementato usando l'esecuzione posticipata. Il valore restituito immediato è un oggetto che archivia tutte le informazioni necessarie per eseguire l'azione. La query rappresentata da questo metodo non viene eseguita finché l'oggetto non viene enumerato chiamando il GetEnumerator
relativo metodo direttamente o usando foreach
in C# o For Each
in Visual Basic.
Il TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) metodo verifica ogni elemento di source
usando predicate
e restituisce l'elemento se il risultato è true
. L'enumerazione si arresta quando la funzione predicato restituisce false
per un elemento o quando source
non contiene più elementi.
I TakeWhile metodi e SkipWhile sono complementi funzionali. Dato una sequenza di raccolta e una funzione pura, concatenando i risultati di e coll.SkipWhile(p)
restituisce la stessa sequenza coll
di coll.TakeWhile(p)
coll
.p
Nella sintassi dell'espressione di query di Visual Basic, una Take While
clausola si traduce in una chiamata di TakeWhile.