Queryable.Single Méthode

Définition

Retourne un élément spécifique unique d'une séquence.Returns a single, specific element of a sequence.

Surcharges

Single<TSource>(IQueryable<TSource>)

Retourne l’élément unique d’une séquence ou lève une exception si cette séquence ne contient pas un seul élément.Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence.

Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

Retourne le seul élément d’une séquence qui satisfait à une condition spécifique ou lève une exception si cette séquence contient plusieurs éléments respectant cette condition.Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists.

Single<TSource>(IQueryable<TSource>)

Retourne l’élément unique d’une séquence ou lève une exception si cette séquence ne contient pas un seul élément.Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static TSource Single(System::Linq::IQueryable<TSource> ^ source);
public static TSource Single<TSource> (this System.Linq.IQueryable<TSource> source);
static member Single : System.Linq.IQueryable<'Source> -> 'Source
<Extension()>
Public Function Single(Of TSource) (source As IQueryable(Of TSource)) As TSource

Paramètres de type

TSource

Le type des éléments de source.The type of the elements of source.

Paramètres

source
IQueryable<TSource>

IQueryable<T> duquel retourner le seul élément.An IQueryable<T> to return the single element of.

Retours

TSource

Seul élément de la séquence d'entrée.The single element of the input sequence.

Exceptions

source a la valeur null.source is null.

source a plusieurs éléments.source has more than one element.

- ou --or- La séquence source est vide.The source sequence is empty.

Exemples

L’exemple de code suivant montre comment utiliser Single<TSource>(IQueryable<TSource>) pour sélectionner le seul élément d’un tableau.The following code example demonstrates how to use Single<TSource>(IQueryable<TSource>) to select the only element of an array.

// Create two arrays.
string[] fruits1 = { "orange" };
string[] fruits2 = { "orange", "apple" };

// Get the only item in the first array.
string fruit1 = fruits1.AsQueryable().Single();

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

try
{
    // Try to get the only item in the second array.
    string fruit2 = fruits2.AsQueryable().Single();
    Console.WriteLine("Second query: " + fruit2);
}
catch (System.InvalidOperationException)
{
    Console.WriteLine(
        "Second query: The collection does not contain exactly one element."
        );
}

/*
    This code produces the following output:

    First query: orange
    Second query: The collection does not contain exactly one element
*/
' Create two arrays.
Dim fruits1() As String = {"orange"}
Dim fruits2() As String = {"orange", "apple"}

' Get the only item in the first array.
Dim result As String = fruits1.AsQueryable().Single()

' Display the result.
MsgBox("First query: " & result)

Try
    ' Try to get the only item in the second array.
    Dim fruit2 As String = fruits2.AsQueryable().Single()
    MsgBox("Second query: " + fruit2)
Catch
    MsgBox("Second query: The collection does not contain exactly one element.")
End Try

' This code produces the following output:

' First query: orange
' Second query: The collection does not contain exactly one element.

Remarques

La Single<TSource>(IQueryable<TSource>) méthode génère un MethodCallExpression qui représente l’appel de Single<TSource>(IQueryable<TSource>) lui-même comme une méthode générique construite.The Single<TSource>(IQueryable<TSource>) method generates a MethodCallExpression that represents calling Single<TSource>(IQueryable<TSource>) itself as a constructed generic method. Il passe ensuite MethodCallExpression à la Execute<TResult>(Expression) méthode de IQueryProvider représenté par la Provider propriété du source paramètre.It then passes the MethodCallExpression to the Execute<TResult>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Le comportement de la requête qui se produit suite à l’exécution d’une arborescence d’expressions qui représente l’appel de Single<TSource>(IQueryable<TSource>) dépend de l’implémentation du type du source paramètre.The query behavior that occurs as a result of executing an expression tree that represents calling Single<TSource>(IQueryable<TSource>) depends on the implementation of the type of the source parameter. Le comportement attendu est qu’il retourne le seul élément dans source .The expected behavior is that it returns the only element in source.

S’applique à

Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

Retourne le seul élément d’une séquence qui satisfait à une condition spécifique ou lève une exception si cette séquence contient plusieurs éléments respectant cette condition.Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static TSource Single(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, bool> ^> ^ predicate);
public static TSource Single<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);
static member Single : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, bool>> -> 'Source
<Extension()>
Public Function Single(Of TSource) (source As IQueryable(Of TSource), predicate As Expression(Of Func(Of TSource, Boolean))) As TSource

Paramètres de type

TSource

Le type des éléments de source.The type of the elements of source.

Paramètres

source
IQueryable<TSource>

IQueryable<T> duquel retourner un seul élément.An IQueryable<T> to return a single element from.

predicate
Expression<Func<TSource,Boolean>>

Fonction permettant de tester un élément pour une condition.A function to test an element for a condition.

Retours

TSource

L'élément unique de la séquence d'entrée qui satisfait à la condition dans predicate.The single element of the input sequence that satisfies the condition in predicate.

Exceptions

source ou predicate est null.source or predicate is null.

Aucun élément ne satisfait la condition dans predicate.No element satisfies the condition in predicate.

- ou --or- Plusieurs éléments satisfont à la condition dans predicate.More than one element satisfies the condition in predicate.

- ou --or- La séquence source est vide.The source sequence is empty.

Exemples

L’exemple de code suivant montre comment utiliser Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) pour sélectionner le seul élément d’un tableau qui satisfait à une condition.The following code example demonstrates how to use Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) to select the only element of an array that satisfies a condition.

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.
 */
Dim fruits() As String = _
    {"apple", "banana", "mango", "orange", "passionfruit", "grape"}

' Get the only string in the array whose length is greater than 10.
Dim result As String = _
    fruits.AsQueryable().Single(Function(fruit) fruit.Length > 10)

' Display the result.
MsgBox("First Query: " & result)

Try
    ' Try to get the only string in the array
    ' whose length is greater than 15.
    Dim fruit2 As String = fruits.AsQueryable().Single(Function(fruit) fruit.Length > 15)
    MsgBox("Second Query: " + fruit2)
Catch
    Dim text As String = "Second Query: The collection does not contain "
    text = text & "exactly one element whose length is greater than 15."
    MsgBox(text)
End Try

' 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.

Remarques

Cette méthode a au moins un paramètre de type Expression<TDelegate> dont l’argument de type est l’un des Func<T,TResult> types.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Pour ces paramètres, vous pouvez passer une expression lambda et elle sera compilée dans un Expression<TDelegate> .For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

La Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) méthode génère un MethodCallExpression qui représente l’appel de Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) lui-même comme une méthode générique construite.The Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) method generates a MethodCallExpression that represents calling Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) itself as a constructed generic method. Il passe ensuite MethodCallExpression à la Execute<TResult>(Expression) méthode de IQueryProvider représenté par la Provider propriété du source paramètre.It then passes the MethodCallExpression to the Execute<TResult>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Le comportement de la requête qui se produit suite à l’exécution d’une arborescence d’expressions qui représente l’appel de Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) dépend de l’implémentation du type du source paramètre.The query behavior that occurs as a result of executing an expression tree that represents calling Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) depends on the implementation of the type of the source parameter. Le comportement attendu est qu’il retourne le seul élément dans source qui satisfait à la condition spécifiée par predicate .The expected behavior is that it returns the only element in source that satisfies the condition specified by predicate.

S’applique à