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}";
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")}";