我有一個物件,它使用遍歷串列foreach并回傳我正在訪問的物件的值。
例如,根據情況,物件回傳 a count = 10。
我需要總結所有這些記錄的值,我正在嘗試如下,但它什么都不回傳。
如果我洗掉 =并只留下=,我只會檢索第一條記錄。
我如何總結所有記錄?
public decimal? ValesDisponiveis
{
get
{
decimal? informacaoRetorno = null;
if (ValeCreditos != null)
{
foreach (ValeCredito vale in ValeCreditos)
{
informacaoRetorno = vale.ValesDisponiveis;
}
}
return informacaoRetorno;
}
}
uj5u.com熱心網友回復:
問題是:
decimal? informacaoRetorno = null;
而是使用:
decimal? informacaoRetorno = 0;
或者在這種情況下最好不要為空,因為初始化為 0:
decimal informacaoRetorno = 0;
編輯
正如評論中提到的,如果您仍然想要null一個有效的結果,如果IEnumerable為 null,您仍然可以執行以下操作:
if (ValeCreditos == null)
return null;
return ValeCreditors.Sum(x => x.ValesDisponiveis);
如果ValesDisponiveis已經有正確的基本型別。
uj5u.com熱心網友回復:
假設您想null在沒有要匯總的專案(例如,whenValeCreditos為空)的情況下回傳,您應該檢查HasValue:
public decimal? ValesDisponiveis
{
get
{
decimal? informacaoRetorno = null;
if (ValeCreditos != null)
{
foreach (ValeCredito vale in ValeCreditos)
{
if (informacaoRetorno.HasValue) // business as usual: just add
informacaoRetorno = vale.ValesDisponiveis;
else // null value == null, that's why we assign
informacaoRetorno = vale.ValesDisponiveis;
}
}
return informacaoRetorno;
}
}
此代碼回傳nullonnull或 emptyValeCreditos以及否則回傳專案的總和。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/337219.html
標籤:C#
