Enumerable.Single Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Returns a single, specific element of a sequence.
Overloads
Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
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>(IEnumerable<TSource>) |
Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. |
Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
- Source:
- Single.cs
- Source:
- Single.cs
- Source:
- Single.cs
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::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
Type Parameters
- TSource
The type of the elements of source
.
Parameters
- source
- IEnumerable<TSource>
An IEnumerable<T> to return a single element from.
Returns
The single element of the input sequence that satisfies a condition.
Exceptions
source
or predicate
is null
.
No element satisfies the condition in predicate
.
-or-
More than one element satisfies the condition in predicate
.
-or-
The source sequence is empty.
Examples
The following code example demonstrates how to use Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) to select the only element of an array that satisfies a condition.
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}")
The following code example demonstrates that Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) throws an exception when the sequence does not contain exactly one element that satisfies the condition.
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.
Remarks
The Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) method throws an exception if the input sequence contains no matching element. To instead return null
when no matching element is found, use SingleOrDefault.
Applies to
Single<TSource>(IEnumerable<TSource>)
- Source:
- Single.cs
- Source:
- Single.cs
- Source:
- Single.cs
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::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
Type Parameters
- TSource
The type of the elements of source
.
Parameters
- source
- IEnumerable<TSource>
An IEnumerable<T> to return the single element of.
Returns
The single element of the input sequence.
Exceptions
source
is null
.
The input sequence contains more than one element.
-or-
The input sequence is empty.
Examples
The following code example demonstrates how to use Single<TSource>(IEnumerable<TSource>) to select the only element of an array.
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}")
The following code example demonstrates that Single<TSource>(IEnumerable<TSource>) throws an exception when the sequence does not contain exactly one 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.
Remarks
The Single<TSource>(IEnumerable<TSource>) method throws an exception if the input sequence is empty. To instead return null
when the input sequence is empty, use SingleOrDefault.