Queryable.Single Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Retourne un élément spécifique unique d’une séquence.
Surcharges
| Nom | Description |
|---|---|
| Single<TSource>(IQueryable<TSource>) |
Retourne le seul élément d’une séquence et lève une exception s’il n’y a pas exactement un élément dans la séquence. |
| Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) |
Retourne le seul élément d’une séquence qui satisfait à une condition spécifiée et lève une exception si plusieurs éléments de ce type existent. |
Single<TSource>(IQueryable<TSource>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
Retourne le seul élément d’une séquence et lève une exception s’il n’y a pas exactement un élément dans la séquence.
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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
public static TSource Single<TSource>(this System.Linq.IQueryable<TSource> source);
static member Single : System.Linq.IQueryable<'Source> -> 'Source
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
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
Type des éléments de source.
Paramètres
- source
- IQueryable<TSource>
Pour IQueryable<T> renvoyer l’élément unique de.
Retours
Élément unique de la séquence d’entrée.
- Attributs
Exceptions
source a la valeur null.
Exemples
L’exemple de code suivant montre comment utiliser Single<TSource>(IQueryable<TSource>) pour sélectionner le seul élément d’un tableau.
// 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 qui représente l’appel MethodCallExpressionSingle<TSource>(IQueryable<TSource>) lui-même en tant que méthode générique construite. Il passe ensuite la MethodCallExpressionExecute<TResult>(Expression) méthode de l’objet IQueryProvider représenté par la Provider propriété du source paramètre.
Le comportement de requête qui se produit suite à l’exécution d’une arborescence d’expressions qui représente l’appel Single<TSource>(IQueryable<TSource>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il retourne le seul élément dans source.
S’applique à
Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
Retourne le seul élément d’une séquence qui satisfait à une condition spécifiée et lève une exception si plusieurs éléments de ce type existent.
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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
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
Type des éléments de source.
Paramètres
- source
- IQueryable<TSource>
Pour IQueryable<T> renvoyer un élément unique.
- predicate
- Expression<Func<TSource,Boolean>>
Fonction permettant de tester un élément pour une condition.
Retours
Élément unique de la séquence d’entrée qui satisfait à la condition dans predicate.
- Attributs
Exceptions
source ou predicate est null.
Aucun élément ne satisfait à la condition dans predicate.
- ou -
Plusieurs éléments répondent à la condition dans predicate.
- ou -
La séquence source est vide.
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.
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. Pour ces paramètres, vous pouvez passer une expression lambda et elle sera compilée à un Expression<TDelegate>.
La Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) méthode génère un qui représente l’appel MethodCallExpressionSingle<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) lui-même en tant que méthode générique construite. Il passe ensuite la MethodCallExpressionExecute<TResult>(Expression) méthode de l’objet IQueryProvider représenté par la Provider propriété du source paramètre.
Le comportement de requête qui se produit suite à l’exécution d’une arborescence d’expressions qui représente l’appel Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il retourne le seul élément qui source satisfait à la condition spécifiée par predicate.