Enumerable.Single Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar ett enskilt, specifikt element i en sekvens.
Överlagringar
| Name | Description |
|---|---|
| Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Returnerar det enda elementet i en sekvens som uppfyller ett angivet villkor och genererar ett undantag om mer än ett sådant element finns. |
| Single<TSource>(IEnumerable<TSource>) |
Returnerar det enda elementet i en sekvens och genererar ett undantag om det inte finns exakt ett element i sekvensen. |
Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
Returnerar det enda elementet i en sekvens som uppfyller ett angivet villkor och genererar ett undantag om mer än ett sådant element finns.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static TSource Single(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static TSource Single<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member Single : seq<'Source> * Func<'Source, bool> -> 'Source
<Extension()>
Public Function Single(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Boolean)) As TSource
Typparametrar
- TSource
Typen av element sourcei .
Parametrar
- source
- IEnumerable<TSource>
En IEnumerable<T> att returnera ett enda element från.
Returer
Det enda elementet i indatasekvensen som uppfyller ett villkor.
Undantag
source eller predicate är null.
Inget element uppfyller villkoret i predicate.
-eller-
Mer än ett element uppfyller villkoret i predicate.
-eller-
Källsekvensen är tom.
Exempel
Följande kodexempel visar hur du använder Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) för att välja det enda elementet i en matris som uppfyller ett villkor.
string[] fruits = { "apple", "banana", "mango",
"orange", "passionfruit", "grape" };
string fruit1 = fruits.Single(fruit => fruit.Length > 10);
Console.WriteLine(fruit1);
/*
This code produces the following output:
passionfruit
*/
' Create an array of strings.
Dim fruits() As String =
{"apple", "banana", "mango", "orange", "passionfruit", "grape"}
' Get the single item in the array whose length is greater than 10.
Dim result As String =
fruits.Single(Function(fruit) fruit.Length > 10)
' Display the result.
Console.WriteLine($"First query: {result}")
Följande kodexempel visar att Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) utlöser ett undantag när sekvensen inte innehåller exakt ett element som uppfyller villkoret.
string fruit2 = null;
try
{
fruit2 = fruits.Single(fruit => fruit.Length > 15);
}
catch (System.InvalidOperationException)
{
Console.WriteLine(@"The collection does not contain exactly
one element whose length is greater than 15.");
}
Console.WriteLine(fruit2);
// This code produces the following output:
//
// The collection does not contain exactly
// one element whose length is greater than 15.
result = String.Empty
' Try to get the single item in the array whose length is > 15.
Try
result = fruits.Single(Function(fruit) _
fruit.Length > 15)
Catch ex As System.InvalidOperationException
result = "There is not EXACTLY ONE element whose length is > 15."
End Try
' Display the result.
Console.WriteLine($"Second query: {result}")
' This code produces the following output:
'
' First query: passionfruit
' Second query: There is not EXACTLY ONE element whose length is > 15.
Kommentarer
Metoden Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) genererar ett undantag om indatasekvensen inte innehåller något matchande element. Om du i stället vill returnera null när inget matchande element hittas använder du SingleOrDefault.
Gäller för
Single<TSource>(IEnumerable<TSource>)
Returnerar det enda elementet i en sekvens och genererar ett undantag om det inte finns exakt ett element i sekvensen.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static TSource Single(System::Collections::Generic::IEnumerable<TSource> ^ source);
public static TSource Single<TSource>(this System.Collections.Generic.IEnumerable<TSource> source);
static member Single : seq<'Source> -> 'Source
<Extension()>
Public Function Single(Of TSource) (source As IEnumerable(Of TSource)) As TSource
Typparametrar
- TSource
Typen av element sourcei .
Parametrar
- source
- IEnumerable<TSource>
En IEnumerable<T> som returnerar det enda elementet i.
Returer
Det enda elementet i indatasekvensen.
Undantag
source är null.
Indatasekvensen innehåller mer än ett element.
-eller-
Indatasekvensen är tom.
Exempel
Följande kodexempel visar hur du använder Single<TSource>(IEnumerable<TSource>) för att välja det enda elementet i en matris.
string[] fruits1 = { "orange" };
string fruit1 = fruits1.Single();
Console.WriteLine(fruit1);
/*
This code produces the following output:
orange
*/
' Create an array that contains one item.
Dim fruits1() As String = {"orange"}
' Get the single item in the array.
Dim result As String = fruits1.Single()
' Display the result.
Console.WriteLine($"First query: {result}")
Följande kodexempel visar att Single<TSource>(IEnumerable<TSource>) utlöser ett undantag när sekvensen inte innehåller exakt ett element.
string[] fruits2 = { "orange", "apple" };
string fruit2 = null;
try
{
fruit2 = fruits2.Single();
}
catch (System.InvalidOperationException)
{
Console.WriteLine("The collection does not contain exactly one element.");
}
Console.WriteLine(fruit2);
/*
This code produces the following output:
The collection does not contain exactly one element.
*/
' Create an array that contains two items.
Dim fruits2() As String = {"orange", "apple"}
result = String.Empty
' Try to get the 'single' item in the array.
Try
result = fruits2.Single()
Catch ex As System.InvalidOperationException
result = "The collection does not contain exactly one element."
End Try
' Display the result.
Console.WriteLine($"Second query: {result}")
' This code produces the following output:
'
' First query: orange
' Second query: The collection does not contain exactly one element.
Kommentarer
Metoden Single<TSource>(IEnumerable<TSource>) genererar ett undantag om indatasekvensen är tom. Om du i stället vill returnera null när indatasekvensen är tom använder du SingleOrDefault.