Auf Englisch lesen

Freigeben über


Enumerable.FirstOrDefault Methode

Definition

Gibt das erste Element einer Sequenz oder einen Standardwert zurück, wenn kein Element gefunden wird

Überlädt

FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource)

Gibt das erste Element der Sequenz zurück, das eine Bedingung erfüllt, oder einen angegebenen Standardwert, wenn kein solches Element gefunden wird.

FirstOrDefault<TSource>(IEnumerable<TSource>, TSource)

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

FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

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

FirstOrDefault<TSource>(IEnumerable<TSource>)

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

FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource)

Quelle:
First.cs
Quelle:
First.cs
Quelle:
First.cs

Gibt das erste Element der Sequenz zurück, das eine Bedingung erfüllt, oder einen angegebenen Standardwert, wenn kein solches Element gefunden wird.

C#
public static TSource FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate, TSource defaultValue);

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IEnumerable<TSource>

Ein IEnumerable<T>, aus dem ein Element zurückgegeben werden soll

predicate
Func<TSource,Boolean>

Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird.

defaultValue
TSource

Der Standardwert, der zurückgegeben werden soll, wenn die Sequenz leer ist.

Gibt zurück

TSource

defaultValue , wenn source leer ist oder wenn kein Element den von predicateangegebenen Test besteht, andernfalls das erste Element in source , das den durch predicateangegebenen Test besteht.

Ausnahmen

source oder predicate ist null.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET 6, 7, 8, 9

FirstOrDefault<TSource>(IEnumerable<TSource>, TSource)

Quelle:
First.cs
Quelle:
First.cs
Quelle:
First.cs

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

C#
public static TSource FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, TSource defaultValue);

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IEnumerable<TSource>

Das IEnumerable<T>, dessen erstes Element zurückgegeben werden soll

defaultValue
TSource

Der Standardwert, der zurückgegeben werden soll, wenn die Sequenz leer ist.

Gibt zurück

TSource

defaultValue , wenn source leer ist, andernfalls das erste Element in source.

Ausnahmen

source ist null

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET 6, 7, 8, 9

FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Quelle:
First.cs
Quelle:
First.cs
Quelle:
First.cs

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

C#
public static TSource FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
C#
public static TSource? FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IEnumerable<TSource>

Ein IEnumerable<T>, aus dem ein Element zurückgegeben werden soll

predicate
Func<TSource,Boolean>

Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird.

Gibt zurück

TSource

default(TSource), wenn source leer ist oder wenn kein Element die von predicate angegebene Überprüfung besteht. Andernfalls das erste Element in source, das die von predicate angegebene Überprüfung besteht.

Ausnahmen

source oder predicate ist null.

Beispiele

Im folgenden Codebeispiel wird die Verwendung FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) durch Übergeben eines Prädikats veranschaulicht. Im zweiten Aufruf der -Methode gibt es kein Element im Array, das die Bedingung erfüllt.

C#
string[] names = { "Hartono, Tommy", "Adams, Terry",
                     "Andersen, Henriette Thaulow",
                     "Hedlund, Magnus", "Ito, Shu" };

string firstLongName = names.FirstOrDefault(name => name.Length > 20);

Console.WriteLine("The first long name is '{0}'.", firstLongName);

string firstVeryLongName = names.FirstOrDefault(name => name.Length > 30);

Console.WriteLine(
    "There is {0} name longer than 30 characters.",
    string.IsNullOrEmpty(firstVeryLongName) ? "not a" : "a");

/*
 This code produces the following output:

 The first long name is 'Andersen, Henriette Thaulow'.
 There is not a name longer than 30 characters.
*/

Hinweise

Der Standardwert für Verweis- und Nullable-Typen ist null.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

FirstOrDefault<TSource>(IEnumerable<TSource>)

Quelle:
First.cs
Quelle:
First.cs
Quelle:
First.cs

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

C#
public static TSource FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);
C#
public static TSource? FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IEnumerable<TSource>

Das IEnumerable<T>, dessen erstes Element zurückgegeben werden soll

Gibt zurück

TSource

default(TSource), wenn source leer ist, andernfalls das erste Element in source

Ausnahmen

source ist null.

Beispiele

Im folgenden Codebeispiel wird die Verwendung FirstOrDefault<TSource>(IEnumerable<TSource>) für ein leeres Array veranschaulicht.

C#
int[] numbers = { };
int first = numbers.FirstOrDefault();
Console.WriteLine(first);

/*
 This code produces the following output:

 0
*/

Manchmal ist der Wert von default(TSource) nicht der Standardwert, den Sie verwenden möchten, wenn die Auflistung keine Elemente enthält. Anstatt das Ergebnis auf den unerwünschten Standardwert zu überprüfen und ihn dann bei Bedarf zu ändern, können Sie die DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) -Methode verwenden, um den Standardwert anzugeben, den Sie verwenden möchten, wenn die Auflistung leer ist. Rufen Sie dann auf First<TSource>(IEnumerable<TSource>) , um das erste Element abzurufen. Im folgenden Codebeispiel werden beide Techniken verwendet, um den Standardwert 1 zu erhalten, wenn eine Auflistung von numerischen Monaten leer ist. Da der Standardwert für eine ganze Zahl 0 ist, was keinem Monat entspricht, muss der Standardwert stattdessen als 1 angegeben werden. Die erste Ergebnisvariable wird nach Abschluss der Ausführung der Abfrage auf den unerwünschten Standardwert überprüft. Die zweite Ergebnisvariable wird mithilfe von DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) abgerufen, um den Standardwert 1 anzugeben.

C#
List<int> months = new List<int> { };

// Setting the default value to 1 after the query.
int firstMonth1 = months.FirstOrDefault();
if (firstMonth1 == 0)
{
    firstMonth1 = 1;
}
Console.WriteLine("The value of the firstMonth1 variable is {0}", firstMonth1);

// Setting the default value to 1 by using DefaultIfEmpty() in the query.
int firstMonth2 = months.DefaultIfEmpty(1).First();
Console.WriteLine("The value of the firstMonth2 variable is {0}", firstMonth2);

/*
 This code produces the following output:

 The value of the firstMonth1 variable is 1
 The value of the firstMonth2 variable is 1
*/

Hinweise

Der Standardwert für Verweis- und Nullable-Typen ist null.

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

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0