webentwicklung-frage-antwort-db.com.de

Wie verwende ich den ternären Operator in einer interpolierten Zeichenfolge?

Ich bin verwirrt, warum dieser Code nicht kompiliert werden kann:

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

Wenn ich es aufteile, funktioniert es gut:

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

Nach der Dokumentation :

Die Struktur einer interpolierten Zeichenfolge lautet wie folgt:

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

Das Problem ist, dass der Doppelpunkt verwendet wird, um die Formatierung zu kennzeichnen, wie:

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

Die Lösung ist, die Bedingung in Klammern zu setzen :

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