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

81

我尝试在插值字符串中使用条件运算符,但由于其中有一个冒号,编译器认为冒号后面是格式字符串。

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

我该如何使用这种语句? 我能想到的唯一方法就是像这样:

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

2
那是一个插值字符串逐字字符串@"开头,可以包含通常需要转义的字符。 - Damien_The_Unbeliever
2个回答

200
您需要将字符串括在{}内,例如:{(1 == 1 ? "yes" : "no")}

注意括号!谢谢 - user1908746

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

圆括号内的代码返回一个变量,这是花括号内唯一允许的内容。冒号“:”是字符串插值中的特殊字符,因此需要加上括号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接