Enumerable.Single Método

Definición

Devuelve un único elemento concreto de una secuencia.

Sobrecargas

Single<TSource>(IEnumerable<TSource>)

Devuelve el único elemento de una secuencia y produce una excepción si no hay exactamente un elemento en la secuencia.

Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Devuelve el único elemento de una secuencia que cumpla una condición especificada y produce una excepción si existe más de un elemento de este tipo.

Single<TSource>(IEnumerable<TSource>)

Devuelve el único elemento de una secuencia y produce una excepción si no hay exactamente un elemento en la secuencia.

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

Parámetros de tipo

TSource

Tipo de los elementos de source.

Parámetros

source
IEnumerable<TSource>

IEnumerable<T> cuyo único elemento se va a devolver.

Devoluciones

TSource

El único elemento de la secuencia de entrada.

Excepciones

source es null.

La secuencia de entrada contiene más de un elemento.

o bien

La secuencia de entrada está vacía.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar Single<TSource>(IEnumerable<TSource>) para seleccionar el único elemento de una matriz.

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}")

En el ejemplo de código siguiente se muestra que Single<TSource>(IEnumerable<TSource>) produce una excepción cuando la secuencia no contiene exactamente un elemento.

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.

Comentarios

El Single<TSource>(IEnumerable<TSource>) método produce una excepción si la secuencia de entrada está vacía. Para devolver null en su lugar cuando la secuencia de entrada está vacía, use SingleOrDefault.

Se aplica a

Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Devuelve el único elemento de una secuencia que cumpla una condición especificada y produce una excepción si existe más de un elemento de este tipo.

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

Parámetros de tipo

TSource

Tipo de los elementos de source.

Parámetros

source
IEnumerable<TSource>

IEnumerable<T> del que se va a devolver un único elemento.

predicate
Func<TSource,Boolean>

Función que va a probar si un elemento satisface una condición.

Devoluciones

TSource

El único elemento de la secuencia de entrada que satisface una condición.

Excepciones

source o predicate es null.

Ningún elemento satisface la condición de predicate.

o bien

Varios elementos satisfacen la condición de predicate.

o bien

La secuencia de origen está vacía.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) para seleccionar el único elemento de una matriz que cumpla una condición.

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}")

En el ejemplo de código siguiente se muestra que Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) produce una excepción cuando la secuencia no contiene exactamente un elemento que satisface la condición.

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.

Comentarios

El Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) método produce una excepción si la secuencia de entrada no contiene ningún elemento coincidente. Para devolver null en su lugar cuando no se encuentra ningún elemento coincidente, use SingleOrDefault.

Se aplica a