Enumerable.LastOrDefault<TSource>-Methode (IEnumerable<TSource>)
Aktualisiert: November 2007
Gibt das letzte Element einer Sequenz zurück, oder einen Standardwert, wenn die Sequenz keine Elemente enthält.
Assembly: System.Core (in System.Core.dll)
J# unterstützt die Verwendung von generischen APIs, aber nicht die Deklaration von neuen generischen APIs.
JScript unterstützt keine generischen Typen oder Methoden.
Typparameter
- TSource
Der Typ der Elemente von source.
Parameter
- source
- Typ: System.Collections.Generic.IEnumerable<TSource>
Ein IEnumerable<T>, dessen letztes Element zurückgegeben werden soll.
Rückgabewert
Typ: TSourcedefault(TSource), wenn die Quellsequenz leer ist; andernfalls das letzte Element im IEnumerable<T>.
Hinweis zur Verwendung
In Visual Basic und C# können Sie diese Methode als Instanzenmethode für ein beliebiges Objekt vom Typ IEnumerable<TSource> aufrufen. Bei Verwendung der Syntax für Instanzenmethoden lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter Erweiterungsmethoden (Visual Basic) und Erweiterungsmethoden (C#-Programmierhandbuch).| Ausnahme | Bedingung |
|---|---|
| ArgumentNullException | source ist null. |
Der Standardwert für Referenztypen und Typen, die NULL-Werte zulassen, ist null.
Die LastOrDefault-Methode stellt keine Möglichkeit zum Angeben eines Standardwerts bereit. Wenn Sie einen anderen Standardwert als default(TSource) angeben möchten, müssen Sie die DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource)-Methode verwenden, wie im Beispielabschnitt beschrieben.
Im folgenden Codebeispiel wird die Verwendung von LastOrDefault<TSource>(IEnumerable<TSource>) für ein leeres Array veranschaulicht.
Unter Umständen ist der Wert von default(TSource) nicht der Standardwert, den Sie verwenden möchten, wenn die Auflistung keine Elemente enthält. Anstatt im Ergebnis ggf. den unerwünschten Standardwert zu ändern, können Sie mit der DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource)-Methode den Standardwert angeben, der bei einer leeren Auflistung verwendet werden soll. Rufen Sie dann Last<TSource>(IEnumerable<TSource>) auf, um das letzte Element abzurufen. Im folgenden Codebeispiel werden beide Verfahren zum Abrufen des Standardwerts 1 verwendet, wenn eine Auflistung der numerischen Tage des Monats leer ist. Da der Standardwert für eine ganze Zahl 0 ist und keinem Tag eines Monats entspricht, muss stattdessen als Standardwert 1 angegeben werden. Die erste Ergebnisvariable wird auf den unerwünschten Standardwert geprüft, nachdem das Ausführen der Abfrage abgeschlossen ist. Die zweite Ergebnisvariable wird mithilfe von DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) abgerufen, um den Standardwert 1 anzugeben.
List<int> daysOfMonth = new List<int> { }; // Setting the default value to 1 after the query. int lastDay1 = daysOfMonth.LastOrDefault(); if (lastDay1 == 0) { lastDay1 = 1; } Console.WriteLine("The value of the lastDay1 variable is {0}", lastDay1); // Setting the default value to 1 by using DefaultIfEmpty() in the query. int lastDay2 = daysOfMonth.DefaultIfEmpty(1).Last(); Console.WriteLine("The value of the lastDay2 variable is {0}", lastDay2); /* This code produces the following output: The value of the lastDay1 variable is 1 The value of the lastDay2 variable is 1 */
Windows Vista, Windows XP SP2, Windows Server 2003, Windows CE, Windows Mobile für Smartphone, Windows Mobile für Pocket PC
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.