web-dev-qa-db-ja.com

内挿された文字列内で三項演算子を使用する方法

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

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

分割しても、うまくいきます。

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

によると ドキュメント

補間文字列の構造は次のとおりです。

$ "{ <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")}";
591
Nate Barbettini