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.FirstOrDefault<TSource>(IEnumerable<TSource>)

 

Publicado: octubre de 2016

Devuelve el primer elemento de una secuencia o un valor predeterminado si la secuencia no contiene elementos.

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

public static TSource FirstOrDefault<TSource>(
	this IEnumerable<TSource> source
)

Parámetros

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

El IEnumerable<T> para devolver el primer elemento.

Valor devuelto

Type: TSource

default(TSource) si source está vacía; en caso contrario, el primer elemento en source.

Parámetros de tipo

TSource

Tipo de los elementos de source.

Exception Condition
ArgumentNullException

El valor de source es null.

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

El FirstOrDefault método proporciona una manera de especificar un valor predeterminado. Si desea especificar un valor predeterminado distinto de default(TSource), utilice la DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) método tal como se describe en la sección ejemplo.

En el ejemplo de código siguiente se muestra cómo utilizar FirstOrDefault<TSource>(IEnumerable<TSource>) en una matriz vacía.

int[] numbers = { };
int first = numbers.FirstOrDefault();
Console.WriteLine(first);

/*
 This code produces the following output:

 0
*/

A veces el valor de default(TSource) no es el valor predeterminado que se va a utilizar si la colección no contiene elementos. En lugar de comprobar el resultado para el valor predeterminado no deseado y, a continuación, cámbielo si es necesario, puede usar el DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) para especificar el valor predeterminado que se va a utilizar si la colección está vacía. A continuación, llame a First<TSource>(IEnumerable<TSource>) para obtener el primer elemento. En el ejemplo de código siguiente se utiliza ambas técnicas para obtener el valor predeterminado 1 si una colección de meses numéricos está vacía. Dado que el valor predeterminado de un entero es 0, que no corresponde a ningún mes, el valor predeterminado debe especificarse como 1. Después de la consulta ha terminado de ejecutarse, se comprueba la primera variable del resultado para el valor predeterminado no deseado. La segunda variable del resultado se obtiene mediante DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) para especificar un valor predeterminado de 1.

List<int> months = new List<int> { };

// Setting the default value to 1 after the query.
int firstMonth1 = months.FirstOrDefault();
if (firstMonth1 == 0)
{
    firstMonth1 = 1;
}
Console.WriteLine("The value of the firstMonth1 variable is {0}", firstMonth1);

// Setting the default value to 1 by using DefaultIfEmpty() in the query.
int firstMonth2 = months.DefaultIfEmpty(1).First();
Console.WriteLine("The value of the firstMonth2 variable is {0}", firstMonth2);

/*
 This code produces the following output:

 The value of the firstMonth1 variable is 1
 The value of the firstMonth2 variable is 1
*/

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: