1. ホーム
  2. c#

[解決済み] 補間文字列の内部で三項演算子を使用するには?

2022-03-20 05:47:44

質問

なぜこのコードがコンパイルされないのか、混乱しています。

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

分割すれば問題なく動作するのですが。

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

解決方法は?

によると ドキュメント :

補間された文字列の構造は以下の通りです。

{ <interpolationExpression>[,<alignment>][:<formatString>] }

というように、コロンが書式を表すのに使われるのが問題なんです。

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

解決策としては ラップ を括弧で囲みます。

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