C # 带条件运算符的内插字符串

我尝试在一个内插的字符串中使用条件运算符,但是因为它有一个冒号,编译器认为在冒号之后是一个格式化的字符串。

$"test {foo ? "foo is true" : "foo is false"}";

我如何使用这种类型的语句? 我脑子里唯一想到的就是这样的东西:

var fooString = foo ? "foo is true" : "foo is false";
$"test {fooString}";
27452 次浏览
$"test {(foo ? "foo is true" : "foo is false")}";

括号内的代码返回一个变量,这是花括号内唯一允许的内容。冒号’:’是字符串插值中的一个特殊字符,因此需要用括号括起来。

您需要将字符串放在 {}内的圆括号中,因此: {(1 == 1 ? "yes" : "no")}