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

 

Restituisce il singolo elemento di una sequenza che soddisfa una condizione specificata e genera un'eccezione se esiste più di un elemento.

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

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

Parametri

source

Un oggetto IQueryable<T> dal quale restituire un singolo elemento.

predicate

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.

Parametri di tipo

TSource

Tipo degli elementi di source.

Exception Condition
ArgumentNullException

Il parametro source o predicate è null.

InvalidOperationException

Nessun elemento soddisfa la condizione in predicate.

-oppure-

Più di un elemento soddisfa la condizione in predicate.

-oppure-

La sequenza di origine è vuota.

Nel metodo è presente almeno un parametro di tipo Expression<TDelegate> il cui argomento di tipo è costituito da uno dei tipi Func<T, TResult>.Per questi parametri è possibile passare un'espressione lambda che verrà compilata in un oggetto Expression<TDelegate>.

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

Il comportamento della query conseguente all'esecuzione di una struttura ad albero dell'espressione che rappresenta una chiamata a Single<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) dipende dall'implementazione del tipo del parametro source.In base al comportamento previsto, viene restituito il singolo elemento nell’oggetto source che soddisfa la condizione specificata dall’oggetto predicate.

Nell'esempio di codice seguente viene illustrato come utilizzare Single<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) per selezionare il singolo elemento di una matrice che soddisfa una condizione.

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

// Get the only string in the array whose length is greater than 10.
string fruit1 = fruits.AsQueryable().Single(fruit => fruit.Length > 10);

Console.WriteLine("First Query: " + fruit1);

try
{
    // Try to get the only string in the array
    // whose length is greater than 15.
    string fruit2 = fruits.AsQueryable().Single(fruit => fruit.Length > 15);
    Console.WriteLine("Second Query: " + fruit2);
}
catch (System.InvalidOperationException)
{
    Console.Write("Second Query: The collection does not contain ");
    Console.WriteLine("exactly one element whose length is greater than 15.");
}

/*
    This code produces the following output:

    First Query: passionfruit
    Second Query: The collection does not contain exactly one 
    element whose length is greater than 15.
 */

Universal Windows Platform
Disponibile da 4.5
.NET Framework
Disponibile da 3.5
Portable Class Library
Supportato in: portable .NET platforms
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.1
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: