如何在插值字符串内使用三元操作符?

我很困惑为什么这段代码不能编译:

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

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

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

根据文档:

插值字符串的结构如下所示:

# EYZ0

问题是冒号是用来表示格式的,比如:

Console.WriteLine($"The current hour is {hours:hh}")

解决方案是包装括号中的条件:

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