在插值字符串中使用 if 条件

Use if conditional in interpolation string

我有一个只有在复选框被选中时才会获得的值,例如:

var currentEmployeeMedian = "";

if (chkGetMedian.Checked)
{
    //code there
    currentEmployeeMedian = EmployeeMedian.Median.ToString();
}

所以我有一个像这样的插值:

$"{employee}: {formattedTime} - Employee Median = {currentEmployeeMedian} minutes";

但我只想在选中复选框时显示 - Employee Median = {currentEmployeeMedian} minutes 有没有什么方法可以在不使用 if else 子句的情况下实现这一点?没有像使用?:

这样的插值成就

if 子句就像:

if (chkGetMedian.Checked)
{
     $"{employee}: {formattedTime} - Employee Median = {currentEmployeeMedian} minutes";
}
else
{
    $"{employee}: {formattedTime}";
}

无法做到这一点,只能使用插值法吗?

因此,您的目标是有选择地包括没有 if 语句的内插字符串的后半部分。您尝试了三元运算符,但由于无法嵌套内插字符串而失败。

希望我正确理解了你的问题。

解决办法是创建一个字符串变量来保存后半部分:

var medianString = $" - Employee Median = {currentEmployeeMedian} minutes";
$"{employee}: {formattedTime}{(chkGetMedian.Checked ? medianString : string.Empty)}"