我为这个模糊的标题道歉,但我不确定描述它的最佳方式。
我正在 SSIS 中编写 C# 转换脚本。目标是接收 5 个小数值,我需要按照预先确定的顺序接收 5 个非空值中的第一个值,正如您可以通过 else if 语句的顺序看到的那样。因此,如您所见,如果有 MM 值,我想获取它,如果没有,则获取 PRE,然后是 DD、PT 等。您还会看到我只是分配了一个小 varchar 标签值来显示返回的值是出色地。
有没有一种更清洁/更简单的方法来做到这一点,它不包括一堆 if/else if 块?我只是想把它清理干净。
以下当前代码(感谢您的任何建议!):
public Tuple<decimal?,string> getCurrentRec(Decimal? PT, Decimal? DD,
Decimal? PRE, Decimal? MM)
{
string ptlabel = "PT";
string ddlabel = "DD";
string prelabel = "PRE";
string MMLabel = "MM";
string curlabel;
decimal? currentval;
if (MM.HasValue)
{
curlabel = MMLabel;
currentval = MM.Value;
}
else if (PRE.HasValue)
{
curlabel = prelabel;
currentval = PRE.Value;
}
else if (DD.HasValue)
{
curlabel = ddlabel;
currentval = DD.Value;
}
else if (PA.HasValue)
{
curlabel = ptlabel;
currentval = PT.Value;
}
else
{
curlabel = "";
currentval = (decimal?)null;
}
return Tuple.Create(currentval, curlabel);
}