Queryable.Single Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert één specifiek element van een reeks.
Overloads
| Name | Description |
|---|---|
| Single<TSource>(IQueryable<TSource>) |
Retourneert het enige element van een reeks en genereert een uitzondering als er niet precies één element in de reeks is. |
| Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) |
Retourneert het enige element van een reeks die voldoet aan een opgegeven voorwaarde en genereert een uitzondering als er meer dan één dergelijk element bestaat. |
Single<TSource>(IQueryable<TSource>)
- Bron:
- Queryable.cs
- Bron:
- Queryable.cs
- Bron:
- Queryable.cs
- Bron:
- Queryable.cs
- Bron:
- Queryable.cs
Retourneert het enige element van een reeks en genereert een uitzondering als er niet precies één element in de reeks is.
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
Type parameters
- TSource
Het type van de elementen van source.
Parameters
- source
- IQueryable<TSource>
Een IQueryable<T> om het ene element van te retourneren.
Retouren
Het enige element van de invoerreeks.
- Kenmerken
Uitzonderingen
source is null.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe Single<TSource>(IQueryable<TSource>) u het enige element van een matrix selecteert.
// 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.
Opmerkingen
De Single<TSource>(IQueryable<TSource>) methode genereert een MethodCallExpression die zichzelf aanroept Single<TSource>(IQueryable<TSource>) als een samengestelde algemene methode. Vervolgens wordt de MethodCallExpression methode doorgegeven aan de Execute<TResult>(Expression) methode van de IQueryProvider vertegenwoordigd door de Provider eigenschap van de source parameter.
Het querygedrag dat optreedt als gevolg van het uitvoeren van een expressiestructuur die aanroept Single<TSource>(IQueryable<TSource>) , is afhankelijk van de implementatie van het type source parameter. Het verwachte gedrag is dat het het enige element retourneert in source.
Van toepassing op
Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)
- Bron:
- Queryable.cs
- Bron:
- Queryable.cs
- Bron:
- Queryable.cs
- Bron:
- Queryable.cs
- Bron:
- Queryable.cs
Retourneert het enige element van een reeks die voldoet aan een opgegeven voorwaarde en genereert een uitzondering als er meer dan één dergelijk element bestaat.
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
Type parameters
- TSource
Het type van de elementen van source.
Parameters
- source
- IQueryable<TSource>
Een IQueryable<T> om één element van te retourneren.
- predicate
- Expression<Func<TSource,Boolean>>
Een functie om een element voor een voorwaarde te testen.
Retouren
Het enige element van de invoerreeks die voldoet aan de voorwaarde in predicate.
- Kenmerken
Uitzonderingen
source of predicate is null.
Geen element voldoet aan de voorwaarde in predicate.
– of –
Meer dan één element voldoet aan de voorwaarde in predicate.
– of –
De bronvolgorde is leeg.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) u het enige element van een matrix selecteert dat voldoet aan een voorwaarde.
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.
Opmerkingen
Deze methode heeft ten minste één parameter van het type Expression<TDelegate> waarvan het typeargument een van de Func<T,TResult> typen is. Voor deze parameters kunt u een lambda-expressie doorgeven en deze wordt gecompileerd naar een Expression<TDelegate>.
De Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) methode genereert een MethodCallExpression die zichzelf aanroept Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) als een samengestelde algemene methode. Vervolgens wordt de MethodCallExpression methode doorgegeven aan de Execute<TResult>(Expression) methode van de IQueryProvider vertegenwoordigd door de Provider eigenschap van de source parameter.
Het querygedrag dat optreedt als gevolg van het uitvoeren van een expressiestructuur die aanroept Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) , is afhankelijk van de implementatie van het type source parameter. Het verwachte gedrag is dat het het enige element retourneert source dat voldoet aan de voorwaarde die is opgegeven door predicate.