Enumerable.FirstOrDefault Metodo

Definizione

Restituisce il primo elemento di una sequenza o un valore predefinito se non viene trovato alcun elemento.

Overload

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

Restituisce il primo elemento della sequenza che soddisfa una condizione o un valore predefinito specificato se non viene trovato alcun elemento.

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

Restituisce il primo elemento di una sequenza o un valore predefinito specificato se la sequenza non contiene elementi.

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

Restituisce il primo elemento della sequenza che soddisfa una condizione specificata o un valore predefinito se tale elemento non viene trovato.

FirstOrDefault<TSource>(IEnumerable<TSource>)

Restituisce il primo elemento di una sequenza o un valore predefinito se la sequenza non contiene elementi.

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

Origine:
First.cs
Origine:
First.cs
Origine:
First.cs

Restituisce il primo elemento della sequenza che soddisfa una condizione o un valore predefinito specificato se non viene trovato alcun elemento.

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

Parametri di tipo

TSource

Tipo degli elementi di source.

Parametri

source
IEnumerable<TSource>

Oggetto IEnumerable<T> dal quale restituire un elemento.

predicate
Func<TSource,Boolean>

Funzione per testare ogni elemento rispetto a una condizione.

defaultValue
TSource

Valore predefinito da restituire se la sequenza è vuota.

Restituisce

TSource

defaultValue se source è vuoto o se nessun elemento supera il test specificato da predicate; in caso contrario, il primo elemento in source che supera il test specificato da predicate.

Eccezioni

source o predicate è null.

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.NET 6, 7, 8, 9

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

Origine:
First.cs
Origine:
First.cs
Origine:
First.cs

Restituisce il primo elemento di una sequenza o un valore predefinito specificato se la sequenza non contiene elementi.

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

Parametri di tipo

TSource

Tipo degli elementi di source.

Parametri

source
IEnumerable<TSource>

Oggetto IEnumerable<T> di cui restituire il primo elemento.

defaultValue
TSource

Valore predefinito da restituire se la sequenza è vuota.

Restituisce

TSource

defaultValue se source è vuoto; in caso contrario, il primo elemento in source.

Eccezioni

source è null.

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.NET 6, 7, 8, 9

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

Origine:
First.cs
Origine:
First.cs
Origine:
First.cs

Restituisce il primo elemento della sequenza che soddisfa una condizione specificata o un valore predefinito se tale elemento non viene trovato.

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);

Parametri di tipo

TSource

Tipo degli elementi di source.

Parametri

source
IEnumerable<TSource>

Oggetto IEnumerable<T> dal quale restituire un elemento.

predicate
Func<TSource,Boolean>

Funzione per testare ogni elemento rispetto a una condizione.

Restituisce

TSource

default(TSource) se source è vuota o se nessun elemento supera il test specificato da predicate; in caso contrario, il primo elemento in source che supera il test specificato da predicate.

Eccezioni

source o predicate è null.

Esempio

Nell'esempio di codice seguente viene illustrato come usare FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) passando un predicato. Nella seconda chiamata al metodo non è presente alcun elemento nella matrice che soddisfa la condizione.

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

Commenti

Il valore predefinito per i tipi di riferimento e nullable è null.

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.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>)

Origine:
First.cs
Origine:
First.cs
Origine:
First.cs

Restituisce il primo elemento di una sequenza o un valore predefinito se la sequenza non contiene elementi.

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);

Parametri di tipo

TSource

Tipo degli elementi di source.

Parametri

source
IEnumerable<TSource>

Oggetto IEnumerable<T> di cui restituire il primo elemento.

Restituisce

TSource

default(TSource) se source è vuota; in caso contrario, il primo elemento di source.

Eccezioni

source è null.

Esempio

Nell'esempio di codice seguente viene illustrato come usare FirstOrDefault<TSource>(IEnumerable<TSource>) in una matrice vuota.

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

/*
 This code produces the following output:

 0
*/

A volte il valore di default(TSource) non è il valore predefinito che si vuole usare se la raccolta non contiene elementi. Anziché controllare il risultato per il valore predefinito indesiderato e modificarlo, se necessario, è possibile usare il metodo per specificare il DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) valore predefinito che si vuole usare se la raccolta è vuota. Chiamare First<TSource>(IEnumerable<TSource>) quindi per ottenere il primo elemento. Nell'esempio di codice seguente vengono usate entrambe le tecniche per ottenere un valore predefinito pari a 1 se una raccolta di mesi numerici è vuota. Poiché il valore predefinito per un intero è 0, che non corrisponde a alcun mese, il valore predefinito deve essere specificato come 1. La prima variabile di risultato viene controllata per il valore predefinito indesiderato dopo il completamento dell'esecuzione della query. La seconda variabile di risultato viene ottenuta usando DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) per specificare un valore predefinito pari a 1.

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

Commenti

Il valore predefinito per i tipi di riferimento e nullable è null.

Il FirstOrDefault metodo non fornisce un modo per specificare un valore predefinito. Se si vuole specificare un valore predefinito diverso da default(TSource), usare il DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) metodo come descritto nella sezione Esempio.

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.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