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 Queryable.SingleOrDefault<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>)

 

Data di pubblicazione: ottobre 2016

Restituisce il singolo elemento di una sequenza che soddisfa una condizione specificata o un valore predefinito se tale elemento esiste; questo metodo genera un'eccezione se più di un elemento soddisfa la condizione.

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

public static TSource SingleOrDefault<TSource>(
	this IQueryable<TSource> source,
	Expression<Func<TSource, bool>> predicate
)

Parametri

source
Type: System.Linq.IQueryable<TSource>

Un IQueryable<T> per un singolo elemento da restituire.

predicate
Type: System.Linq.Expressions.Expression<Func<TSource, Boolean>>

Funzione per testare un elemento per una condizione.

Valore restituito

Type: TSource

Il singolo elemento della sequenza di input che soddisfa la condizione in predicate, o default(TSource) se tale elemento non viene trovato.

Parametri tipo

TSource

Tipo degli elementi di source.

Exception Condition
ArgumentNullException

source o predicate è null.

InvalidOperationException

Più di un elemento soddisfa la condizione in predicate.

Questo metodo contiene almeno un parametro di tipo Expression<TDelegate> il cui argomento di tipo è uno del Func<T, TResult> tipi. Per questi parametri, è possibile passare un'espressione lambda e verrà compilato in un Expression<TDelegate>.

Il SingleOrDefault<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) metodo genera un MethodCallExpression che rappresenta una chiamata SingleOrDefault<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) stesso come un metodo generico costruito. Passa quindi il MethodCallExpression per il Execute<TResult>(Expression) metodo il IQueryProvider rappresentato dal Provider proprietà del source parametro.

Il comportamento della query che si verifica in seguito all'esecuzione di una struttura ad albero dell'espressione che rappresenta una chiamata SingleOrDefault<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) dipende dall'implementazione del tipo di source parametro. Il comportamento previsto è che restituisce il singolo elemento source che soddisfa la condizione specificata da predicate, o un valore predefinito se tale elemento non esiste.

Esempio di codice seguente viene illustrato come utilizzare SingleOrDefault<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) per selezionare l'unico elemento di matrice che soddisfa una condizione. La seconda query dimostra che SingleOrDefault<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) restituisce un valore predefinito quando la sequenza non contiene esattamente un elemento che soddisfa la condizione.

string[] fruits = { "apple", "banana", "mango", 
                      "orange", "passionfruit", "grape" };

// Get the single string in the array whose length is greater
// than 10, or else the default value for type string (null).
string fruit1 =
    fruits.AsQueryable().SingleOrDefault(fruit => fruit.Length > 10);
Console.WriteLine("First Query: " + fruit1);

// Get the single string in the array whose length is greater
// than 15, or else the default value for type string (null).
string fruit2 =
   fruits.AsQueryable().SingleOrDefault(fruit => fruit.Length > 15);
Console.WriteLine("Second Query: " +
    (String.IsNullOrEmpty(fruit2) ? "No such string!" : fruit2));

/*
    This code produces the following output:

    First Query: passionfruit
    Second Query: No such string!
*/

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.1
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: