Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Enumerable.Single<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>)

 

Publicado: noviembre de 2016

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.

Espacio de nombres:   System.Linq
Ensamblado:  System.Core (en System.Core.dll)

public static TSource Single<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, bool> predicate
)

Parámetros

source
Type: System.Collections.Generic.IEnumerable<TSource>

Un IEnumerable<T> para devolver un único elemento.

predicate
Type: System.Func<TSource, Boolean>

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

Valor devuelto

Type: TSource

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

Parámetros de tipo

TSource

Tipo de los elementos de source.

Exception Condition
ArgumentNullException

El valor de source o predicate es null.

InvalidOperationException

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

-o-

Más de un elemento satisface la condición de predicate.

-o-

La secuencia de origen está vacía.

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. En su lugar devolver null cuando no se encuentra ningún elemento coincidente, utilice SingleOrDefault<TSource>.

En el ejemplo de código siguiente se muestra cómo utilizar Single<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) para seleccionar el único elemento de una matriz que satisface 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
*/

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.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 3.5
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: