Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Enumerable.TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>)

 

Data di pubblicazione: ottobre 2016

Restituisce elementi da una sequenza finché una condizione specificata è true.

Spazio dei nomi:   System.Linq
Assembly:  System.Core (in System.Core.dll)

public static IEnumerable<TSource> TakeWhile<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, bool> predicate
)

Parametri

source
Type: System.Collections.Generic.IEnumerable<TSource>

Una sequenza di elementi da restituire.

predicate
Type: System.Func<TSource, Boolean>

Funzione per testare ogni elemento rispetto a una condizione.

Valore restituito

Type: System.Collections.Generic.IEnumerable<TSource>

Un IEnumerable<T> che contiene gli elementi dalla sequenza di input che precedono l'elemento che non soddisfa il test.

Parametri tipo

TSource

Tipo degli elementi di source.

Exception Condition
ArgumentNullException

source o predicate è null.

Questo metodo viene implementato tramite 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 viene enumerata chiamando il relativo GetEnumerator metodo direttamente o tramite foreach in Visual C# o For Each in Visual Basic.

Il TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) metodo verifica ogni elemento di source utilizzando predicate e restituisce l'elemento se il risultato è true. Enumerazione si interrompe quando la funzione di predicato restituisce false per un elemento o quando source non contiene più elementi.

Il TakeWhile e SkipWhile metodi sono complementi funzionali. Presenza di una sequenza coll e una funzione pura p, concatenando i risultati di coll.TakeWhile(p) e coll.SkipWhile(p) produce la stessa sequenza di coll.

In Visual Basic sintassi dell'espressione di query un Take While clausola viene convertita in una chiamata di TakeWhile.

Esempio di codice seguente viene illustrato come utilizzare TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) per restituire gli elementi dall'inizio di una sequenza finché 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
*/

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: