Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Enumerable.FirstOrDefault<TSource> (Método) (IEnumerable<TSource>)

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 de tipo

TSource

Tipo de los elementos de source.

Parámetros

source
Tipo: System.Collections.Generic.IEnumerable<TSource>
IEnumerable<T> del que se va a devolver el primer elemento.

Valor devuelto

Tipo: TSource
default (TSource) si source está vacío; de lo contrario, el primer elemento de source.

Nota sobre el uso

En Visual Basic y C#, se puede llamar a este método como a un método de instancia en cualquier objeto de tipo IEnumerable<TSource>. Cuando emplee la sintaxis del método de instancia para llamar a este método, omita el primer parámetro. Para obtener más información, vea Métodos de extensión (Visual Basic) o Métodos de extensión (Guía de programación de C#).

ExcepciónCondición
ArgumentNullException

source es null.

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

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

En el ejemplo de código siguiente se muestra cómo se utiliza 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 desea utilizar si la colección no contiene ningún elemento. En lugar de comprobar el resultado para ver si su valor predeterminado no es el deseado y cambiarlo a continuación si es necesario, puede utilizar el método DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) para especificar el valor predeterminado que desee 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 utilizan 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. Se comprueba la primera variable del resultado para ver si el valor predeterminado no es el deseado tras finalizar la ejecución de la consulta. La segunda variable del resultado se obtiene mediante DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) para especificar el valor predeterminado 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
            */



.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft