2

让我重新表述。我在 ForEach 循环中应该添加计算的小数?值到小数点?正如您所指出的, originalAmount 在第一次当然是空的。所以我只需要先检查 null 否则做加法。

decimal? convertedAmount = Calculate(inputValue); //always returns a value

originalAmount = originalAmount==null ? convertedAmount : originalAmount + convertedAmount;

originalAmount 是在前面定义的,在循环之外。

很抱歉造成混淆,如有必要,可以关闭/删除问题。

4

2 回答 2

6

(来自评论)

如果 convertAmount 有,我只希望 originalAmount 有一个值,否则它应该为空。

所以:

decimal? convertedAmount = ...

decimal? originalAmount = convertedAmount;

它可以满足该要求的所有要求。

可能会更冗长,但这没有任何意义

// unnecessary: don't do this:
decimal? originalAmount =
    convertedAmount.HasValue ? convertedAmount.Value : (decimal?)null;
于 2012-10-22T12:11:35.037 回答
2

您需要指定当一个或两个值都为空时您的加法应该如何表现。作为建议尝试这样的事情:

decimal? convertedAmount = ...
decimal? originalAmount = ...
if (convertedAmount.HasValue)
{
    originalAmount = originalAmount.GetValueOrDefault() + convertedAmount.Value;
}
于 2012-10-22T12:12:57.587 回答