Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Enumerable.LastOrDefault<TSource>(IEnumerable<TSource>)

 

Data di pubblicazione: ottobre 2016

Restituisce l'ultimo elemento di una sequenza o un valore predefinito se la sequenza non contiene elementi.

Spazio dei nomi:   System.Linq
Assembly:  System.Core (in System.Core.dll)

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

Parametri

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

Un IEnumerable<T> per restituire l'ultimo elemento.

Valore restituito

Type: TSource

default(TSource) se la sequenza di origine è vuota; in caso contrario, l'ultimo elemento di IEnumerable<T>.

Parametri tipo

TSource

Tipo degli elementi di source.

Exception Condition
ArgumentNullException

source è null.

Il valore predefinito per riferimento e tipi nullable è null.

Il LastOrDefault metodo non fornisce un modo per specificare un valore predefinito. Se si desidera specificare un valore predefinito diverso da default(TSource), utilizzare il DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) metodo come descritto nella sezione esempio.

Esempio di codice seguente viene illustrato come utilizzare LastOrDefault<TSource>(IEnumerable<TSource>) su una matrice vuota.

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

In alcuni casi il valore di default(TSource) non è il valore predefinito che si desidera utilizzare se la raccolta non contiene elementi. Anziché verificare il risultato per il valore predefinito non desiderato e quindi modificarlo se necessario, è possibile utilizzare il DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) per specificare il valore predefinito che si desidera utilizzare se la raccolta è vuota. Quindi, chiamare Last<TSource>(IEnumerable<TSource>) per ottenere l'ultimo elemento. Esempio di codice seguente utilizza entrambe le tecniche per ottenere un valore predefinito di 1, se una raccolta di numerici giorni del mese è vuota. Poiché il valore predefinito per un numero intero è 0, che non corrisponde a qualsiasi giorno del mese, il valore predefinito deve essere invece specificato come 1. La prima variabile di risultato viene verificata per il valore predefinito non desiderato dopo la query ha terminato l'esecuzione. La seconda variabile del risultato viene ottenuta utilizzando DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) per specificare un valore predefinito di 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
*/

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: