如何在内插string中使用三元运算符?

我很困惑,为什么这个代码不会编译:

var result = $"{fieldName}{isDescending ? " desc" : string.Empty}"; 

如果我把它分开,它工作正常:

 var desc = isDescending ? " desc" : string.Empty; var result = $"{fieldName}{desc}"; 

根据文件 :

内插string的结构如下所示:

$ "{ <interpolation-expression> <optional-comma-field-width> <optional-colon-format> }"

问题是冒号被用来表示格式化

 Console.WriteLine($"Time in hours is {hours:hh}") 

所以, tl; dr的答案是:在括号中包装条件。

 var result = $"descending? {(isDescending ? "yes" : "no")}";