(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Queryable.LastOrDefault<TSource>-Methode (IQueryable<TSource>, Expression<Func<TSource, Boolean>>)

Gibt das letzte Element einer Sequenz zurück, das eine Bedingung erfüllt, oder einen Standardwert, wenn ein solches Element nicht gefunden wird.

Namespace:  System.Linq
Assembly:  System.Core (in System.Core.dll)
public static TSource LastOrDefault<TSource>(
	this IQueryable<TSource> source,
	Expression<Func<TSource, bool>> predicate
)

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
Typ: System.Linq.IQueryable<TSource>
Ein IQueryable<T>, aus dem ein Element zurückgegeben werden soll.
predicate
Typ: System.Linq.Expressions.Expression<Func<TSource, Boolean>>
Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird.

Rückgabewert

Typ: TSource
default(TSource), wenn source leer ist oder wenn keine Elemente von der Prädikatfunktion erfolgreich überprüft werden. Andernfalls das letzte Element von source, das von der Prädikatfunktion erfolgreich überprüft wird.

Hinweis zur Verwendung

In Visual Basic und C# können Sie diese Methode als Instanzenmethode für ein beliebiges Objekt vom Typ IQueryable<TSource> aufrufen. Bei Verwendung der Syntax für Instanzenmethoden lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter Erweiterungsmethoden (Visual Basic) oder Erweiterungsmethoden (C#-Programmierhandbuch).
AusnahmeBedingung
ArgumentNullException

source oder predicate ist null.

Diese Methode verfügt über mindestens einen Parameter vom Typ Expression<TDelegate>, dessen Typargument einer der Func<T, TResult>-Typen ist. Für diese Parameter können Sie einen Lambda-Ausdruck übergeben, und dieser wird zu einer Expression<TDelegate> kompiliert.

Die LastOrDefault<TSource>(IQueryable<TSource>)-Methode generiert einen MethodCallExpression, der den Aufruf von LastOrDefault<TSource>(IQueryable<TSource>) durch sich selbst als konstruierte generische Methode darstellt. Anschließend übergibt sie die MethodCallExpression an die Execute<TResult>(Expression)-Methode des IQueryProvider, der von der Provider-Eigenschaft des source-Parameters dargestellt wird.

Das Abfrageverhalten, das durch das Ausführen einer Ausdrucksbaumstruktur auftritt, die einen Aufruf von LastOrDefault<TSource>(IQueryable<TSource>) darstellt, hängt von der Implementierung des Typs des source-Parameters ab. Es wird erwartet, dass das letzte Element in source zurückgegeben wird, das die von predicate angegebene Bedingung erfüllt. Wenn kein solches Element in source vorhanden ist, wird der Standardwert zurückgegeben.

Im folgenden Codebeispiel wird die Verwendung von LastOrDefault<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) durch Übergeben eines Prädikats veranschaulicht. Im zweiten Aufruf der Methode enthält die Sequenz kein Element, das die Bedingung erfüllt.


            double[] numbers = { 49.6, 52.3, 51.0, 49.4, 50.2, 48.3 };

            // Get the last number in the array that rounds to 50.0,
            // or else the default value for type double (0.0).
            double last50 =
                numbers.AsQueryable().LastOrDefault(n => Math.Round(n) == 50.0);

            Console.WriteLine("The last number that rounds to 50 is {0}.", last50);

            // Get the last number in the array that rounds to 40.0,
            // or else the default value for type double (0.0).
            double last40 =
                numbers.AsQueryable().LastOrDefault(n => Math.Round(n) == 40.0);

            Console.WriteLine(
                "The last number that rounds to 40 is {0}.",
                last40 == 0.0 ? "[DOES NOT EXIST]" : last40.ToString());

            /*
                This code produces the following output:

                The last number that rounds to 50 is 50.2.
                The last number that rounds to 40 is [DOES NOT EXIST].
            */



.NET Framework

Unterstützt in: 4.5, 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.