Sé que esta es una pregunta antigua y la respuesta aceptada funciona, pero esta pregunta respondió mi pregunta acerca de si un conjunto vacío daría como resultado una excepción o un resultado default(int)
.
La respuesta aceptada, sin embargo, mientras funciona, no es la solución ideal en mi humilde opinión, que no figura aquí. Por lo tanto, lo proporciono en mi propia respuesta para el beneficio de cualquier persona que lo esté buscando. código original
del OP fue:
int maxShoeSize = Workers.Where(x => x.CompanyId == 8).Max(x => x.ShoeSize);
Así es como lo escribiría para evitar excepciones y proporcionar un resultado predeterminado:
int maxShoeSize = Workers.Where(x => x.CompanyId == 8).Max(x => x.ShoeSize as int?) ?? 0;
Esto hace que el tipo de retorno de la función Max
a ser int?
, que permite el resultado null
y luego el ??
reemplaza el resultado null
con 0
.
Naor : ¿has oído hablar de LINQPad? –
Cualquiera que vote a favor: describa por qué. – Naor
no es mi voto a la baja, pero presumiblemente porque usted podría determinarlo fácilmente. –