Enumerable.FirstOrDefault Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static TSource FirstOrDefault(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate, TSource defaultValue);
public static TSource FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate, TSource defaultValue);
static member FirstOrDefault : seq<'Source> * Func<'Source, bool> * 'Source -> 'Source
<Extension()>
Public Function FirstOrDefault(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Boolean), defaultValue As TSource) As TSource
Typparameter
- TSource
Der Typ der Elemente von source
.
Parameter
- source
- IEnumerable<TSource>
Ein IEnumerable<T>, aus dem ein Element zurückgegeben werden soll
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
defaultValue
, wenn source
leer ist oder wenn kein Element den von predicate
angegebenen Test besteht, andernfalls das erste Element in source
, das den durch predicate
angegebenen Test besteht.
Ausnahmen
source
oder predicate
ist null
.
Gilt für:
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.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static TSource FirstOrDefault(System::Collections::Generic::IEnumerable<TSource> ^ source, TSource defaultValue);
public static TSource FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, TSource defaultValue);
static member FirstOrDefault : seq<'Source> * 'Source -> 'Source
<Extension()>
Public Function FirstOrDefault(Of TSource) (source As IEnumerable(Of TSource), defaultValue As TSource) As TSource
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
defaultValue
, wenn source
leer ist, andernfalls das erste Element in source
.
Ausnahmen
source
ist null
Gilt für:
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.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static TSource FirstOrDefault(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static TSource FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
public static TSource? FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member FirstOrDefault : seq<'Source> * Func<'Source, bool> -> 'Source
<Extension()>
Public Function FirstOrDefault(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Boolean)) As TSource
Typparameter
- TSource
Der Typ der Elemente von source
.
Parameter
- source
- IEnumerable<TSource>
Ein IEnumerable<T>, aus dem ein Element zurückgegeben werden soll
Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird.
Gibt zurück
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.
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.
*/
' Create an array of strings.
Dim names() As String =
{"Hartono, Tommy", "Adams, Terry", "Andersen, Henriette Thaulow", "Hedlund, Magnus", "Ito, Shu"}
' Select the first string in the array whose length is greater than 20.
Dim firstLongName As String =
names.FirstOrDefault(Function(name) name.Length > 20)
' Display the output.
Console.WriteLine($"The first long name is {firstLongName}")
' Select the first string in the array whose length is greater than 30,
' or a default value if there are no such strings in the array.
Dim firstVeryLongName As String =
names.FirstOrDefault(Function(name) name.Length > 30)
Dim text As String = IIf(String.IsNullOrEmpty(firstVeryLongName), "not a", "a")
Console.WriteLine($"There is {text} name longer than 30 characters.")
' 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:
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.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static TSource FirstOrDefault(System::Collections::Generic::IEnumerable<TSource> ^ source);
public static TSource FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);
public static TSource? FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);
static member FirstOrDefault : seq<'Source> -> 'Source
<Extension()>
Public Function FirstOrDefault(Of TSource) (source As IEnumerable(Of TSource)) As TSource
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
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.
int[] numbers = { };
int first = numbers.FirstOrDefault();
Console.WriteLine(first);
/*
This code produces the following output:
0
*/
' Create an empty array.
Dim numbers() As Integer = {}
' Select the first element in the array, or a default value
' if there are not elements in the array.
Dim first As Integer = numbers.FirstOrDefault()
' Display the output.
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.
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
*/
Dim months As New List(Of Integer)(New Integer() {})
' Setting the default value to 1 after the query.
Dim firstMonth1 As Integer = months.FirstOrDefault()
If firstMonth1 = 0 Then
firstMonth1 = 1
End If
Console.WriteLine($"The value of the firstMonth1 variable is {firstMonth1}")
' Setting the default value to 1 by using DefaultIfEmpty() in the query.
Dim firstMonth2 As Integer = months.DefaultIfEmpty(1).First()
Console.WriteLine($"The value of the firstMonth2 variable is {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.