Usuário com melhor resposta
Forma de soma de null retornar o valor

Pergunta
-
Olá,
Como posso retornar o valor quando faço soma com null?
Exemplo:
x.PriceItems.Sum(wp =>
(wp.Price != null ? wp.Price : 0) *
(wp.Amount != null ? wp.Amount : 0)
) : 0
+x.custom.PriceItems.Sum(spi =>
(spi.Price != null? spi.Price: 0) * (spi.Amount != null? spi.Amount: 0)
)),O PriceItems é null dai a soma retorna null, tentei fazer (x.PriceItems.firstOrDefault() != null? mesmo de cima ? 0) + , funcionou, mas ficou muito feio, muitos ifs, gostaria de um outro modo, alguém pode me ajuda?
Guisal
Respostas
-
Olá,
Dá pra encurtar um pouco isso:
Tenta assim:
x.PriceItems.Sum(wp => (wp.Price ?? 0) * (wp.Amount ?? 0) + x.custom.PriceItems.Sum(spi => (spi.Price ?? 0) * (spi.Amount ?? 0)));
Perceba que utilizei ??. Ele faz implicitamente a verificação do item, se for null já retorna o que está logo após os sinais.
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MVP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta GuiSal segunda-feira, 13 de fevereiro de 2017 11:17
-
Guilerme,
Tenta utilizar o operador anulável :
x.PriceItems.Sum(wp => (wp.Price ?? : 0) * (wp.Amount ?? 0) ) : 0 + x.custom.PriceItems.Sum(spi => (spi.Price ?? 0) * ( spi.Amount ?? 0) )),
Diego Almeida Barreto</strong> <br/> <em>System Analyst / Software Developer</em> <br/> <img </p> </div>
- Editado Diego de Almeida Barreto (Lewis) sexta-feira, 10 de fevereiro de 2017 20:08
- Marcado como Resposta GuiSal segunda-feira, 13 de fevereiro de 2017 11:17
Todas as Respostas
-
Olá,
Dá pra encurtar um pouco isso:
Tenta assim:
x.PriceItems.Sum(wp => (wp.Price ?? 0) * (wp.Amount ?? 0) + x.custom.PriceItems.Sum(spi => (spi.Price ?? 0) * (spi.Amount ?? 0)));
Perceba que utilizei ??. Ele faz implicitamente a verificação do item, se for null já retorna o que está logo após os sinais.
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MVP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta GuiSal segunda-feira, 13 de fevereiro de 2017 11:17
-
Guilerme,
Tenta utilizar o operador anulável :
x.PriceItems.Sum(wp => (wp.Price ?? : 0) * (wp.Amount ?? 0) ) : 0 + x.custom.PriceItems.Sum(spi => (spi.Price ?? 0) * ( spi.Amount ?? 0) )),
Diego Almeida Barreto</strong> <br/> <em>System Analyst / Software Developer</em> <br/> <img </p> </div>
- Editado Diego de Almeida Barreto (Lewis) sexta-feira, 10 de fevereiro de 2017 20:08
- Marcado como Resposta GuiSal segunda-feira, 13 de fevereiro de 2017 11:17