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

Enumerable.LastOrDefault<TSource>-Methode: (IEnumerable<TSource>)

 

Veröffentlicht: Oktober 2016

Gibt das letzte Element einer Sequenz oder einen Standardwert zurück, wenn die Sequenz keine Elemente enthält.

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

public static TSource LastOrDefault<TSource>(
	this IEnumerable<TSource> source
)

Parameter

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

Ein IEnumerable<T> das letzte Element zurückgegeben.

Rückgabewert

Type: TSource

default(TSource), wenn die Quellsequenz leer ist, andernfalls das letzte Element in der IEnumerable<T>.

Typparameter

TSource

Der Typ der Elemente von source.

Exception Condition
ArgumentNullException

source ist null.

Der Standardwert für Referenztypen und Typen ist null.

Die LastOrDefault Methode bietet keine Möglichkeit, einen Standardwert anzugeben. Wenn Sie als einen Standardwert angeben möchten default(TSource), verwenden Sie die DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) Methode, wie im Beispielabschnitt beschrieben.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie LastOrDefault<TSource>(IEnumerable<TSource>) für ein leeres Array.

string[] fruits = { };
string last = fruits.LastOrDefault();
Console.WriteLine(
    String.IsNullOrEmpty(last) ? "<string is null or empty>" : last);

/*
 This code produces the following output:

 <string is null or empty>
*/

Der Wert von default(TSource) ist nicht der Standardwert, der zu verwenden, wenn die Auflistung keine Elemente enthält. Anstatt das Ergebnis für den unerwünschten Standardwert zu ändern, wenn erforderlich, können Sie die DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) Methode, um den Standardwert anzugeben, die zu verwenden, wenn die Auflistung leer ist. Anschließend rufen Sie Last<TSource>(IEnumerable<TSource>) auf das letzte Element abzurufen. Im folgenden Codebeispiel werden beide Verfahren verwendet, um den Standardwert 1 zu erhalten, wenn eine Auflistung der numerischen Tage des Monats leer ist. Da der Standardwert für eine ganze Zahl 0 nicht zu einem beliebigen Tag des Monats entspricht ist, muss der Standardwert stattdessen als 1 angegeben werden. Die erste Ergebnisvariable wird für den unerwünschten Standardwert geprüft, nachdem die Abfrage ausgeführt wurde. Die zweite Ergebnisvariable wird mithilfe von DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) an den Standardwert 1.

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

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.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: