Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Queryable.TakeWhile<TSource>-Methode: (IQueryable<TSource>, Expression<Func<TSource, Int32, Boolean>>)

 

Veröffentlicht: Oktober 2016

Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung true ist. In der Logik der Prädikatfunktion wird der Index des Elements verwendet.

Namespace:   System.Linq
Assembly:  System.Core (in System.Core.dll)

public static IQueryable<TSource> TakeWhile<TSource>(
	this IQueryable<TSource> source,
	Expression<Func<TSource, int, bool>> predicate
)

Parameter

source
Type: System.Linq.IQueryable<TSource>

Die Sequenz, aus der Elemente zurückgegeben werden sollen.

predicate
Type: System.Linq.Expressions.Expression<Func<TSource, Int32, Boolean>>

Eine Funktion auf jedes Element auf eine Bedingung zu testen. der zweite Parameter der Funktion stellt den Index des Elements in der Quellsequenz.

Rückgabewert

Type: System.Linq.IQueryable<TSource>

Ein IQueryable<T> enthält die Elemente aus der Eingabesequenz auftreten, die vor dem Element, an dem der Test anhand des predicate nicht mehr erfolgreich.

Typparameter

TSource

Der Typ der Elemente von source.

Exception Condition
ArgumentNullException

source oder predicate ist null.

Diese Methode verfügt über mindestens einen Parameter vom Typ Expression<TDelegate> deren Typargument ist eines der Func<T, TResult> Typen. Für diese Parameter können Sie einen Lambda-Ausdruck übergeben, und es werden kompiliert, um eine Expression<TDelegate>.

Die TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource, Int32, Boolean>>) -Methode generiert eine MethodCallExpression Aufruf darstellt TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource, Int32, Boolean>>) sich selbst als konstruierte generische Methode. Anschließend übergibt der MethodCallExpression zu der CreateQuery(Expression) Methode der IQueryProvider durch dargestellt die Provider Eigenschaft der source Parameter.

Das Abfrageverhalten durch das Ausführen einer Ausdrucksbaumstruktur, die aufrufende darstellt, TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource, Int32, Boolean>>) hängt von der Implementierung des Typs der source Parameter. Das erwartete Verhalten ist, gilt predicate auf jedes Element in source bis zu einem Element für die predicate gibt false. Er gibt alle Elemente zurück, bis zu diesem Zeitpunkt. Der Index jedes Quellelements wird bereitgestellt, als das zweite Argument für predicate.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource, Int32, Boolean>>) auf Elemente ab dem Anfang einer Sequenz zurückgegeben werden, solange eine Bedingung, die den Index des Elements wird auf "true" festgelegt ist.

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<string> 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
*/

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.1
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: