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.SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>)

 

Publicado: octubre de 2016

Devuelve el único elemento de una secuencia que cumpla la condición especificada, o bien, un valor predeterminado si ese elemento no existe; este método produce una excepción si varios elementos cumplen la condición.

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

public static TSource SingleOrDefault<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 la condición o default(TSource) si no se encuentra ningún elemento.

Parámetros de tipo

TSource

Tipo de los elementos de source.

Exception Condition
ArgumentNullException

El valor de source o predicate es null.

El valor predeterminado de referencia y tipos que aceptan valores NULL es null.

En el ejemplo de código siguiente se muestra cómo utilizar SingleOrDefault<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.SingleOrDefault(fruit => fruit.Length > 10);

Console.WriteLine(fruit1);

/*
 This code produces the following output:

 passionfruit
*/

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

string fruit2 =
    fruits.SingleOrDefault(fruit => fruit.Length > 15);

Console.WriteLine(
    String.IsNullOrEmpty(fruit2) ? "No such string!" : fruit2);

/*
 This code produces the following output:

 No such string!
*/

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: