Primero()
- Devuelve el primer elemento de una secuencia.
- Lanza un error cuando no hay ningún elemento en el resultado o la fuente es nula.
- debe usarlo, si se espera más de un elemento y solo desea el primer elemento.
FirstOrDefault ()
- Devuelve el primer elemento de una secuencia o un valor predeterminado si no se encuentra ningún elemento.
- Lanza un error Solo si la fuente es nula.
- debe usarlo, si se espera más de un elemento y solo desea el primer elemento. También es bueno si el resultado está vacío.
Tenemos una tabla UserInfos, que tiene algunos registros como se muestra a continuación. Sobre la base de esta tabla a continuación, he creado un ejemplo ...
Cómo usar First ()
var result = dc.UserInfos.First(x => x.ID == 1);
Solo hay un registro donde ID == 1. Debe devolver este
ID de registro : 1 Nombre: Apellido masculino: Correo electrónico de Dubey: xyz@xyz.com
var result = dc.UserInfos.First(x => x.FName == "Rahul");
Hay varios registros donde FName == "Rahul". El primer registro debe ser devuelto.
ID: 7 Nombre: Rahul Apellido: Sharma Correo electrónico: xyz1@xyz.com
var result = dc.UserInfos.First(x => x.ID ==13);
No hay registro con ID == 13. Debe producirse un error.
InvalidOperationException: la secuencia no contiene elementos
Cómo usar FirstOrDefault ()
var result = dc.UserInfos.FirstOrDefault(x => x.ID == 1);
Solo hay un registro donde ID == 1. Debe devolver este
ID de registro : 1 Nombre: Apellido masculino: Correo electrónico de Dubey: xyz@xyz.com
var result = dc.UserInfos.FirstOrDefault(x => x.FName == "Rahul");
Hay varios registros donde FName == "Rahul". El primer registro debe ser devuelto.
ID: 7 Nombre: Rahul Apellido: Sharma Correo electrónico: xyz1@xyz.com
var result = dc.UserInfos.FirstOrDefault(x => x.ID ==13);
No hay registro con ID == 13. El valor de retorno es nulo
Espero que te ayude a entender cuándo usar First()
o FirstOrDefault()
.
.First
y.FirstOrDefault
ambos toman predicados como argumentos, por lo quevar result = List.Where(x => x == "foo").First();
podrían reescribirse comovar result = List.First(x => x == "foo");