Я несколько раз сталкивался с одной проблемой с интерполированными строками.
Рассмотрим следующий случай:
double number = 123.4567;
var str = $"{{{number:F2}}}"; //I want to get "{123.45}"
Console.WriteLine(str); // Will print "{F2}"
Сначала немного удивительно, нокак только вы поймете, как фигурные скобки спарены, это имеет смысл.Две следующие фигурные скобки являются escape-последовательностью для одного фигурного символа в интерполированной строке.Таким образом, открывающая скобка интерполированного выражения соединяется с последним курчавым в строке.
___pair____
| |
$"{{{number:F2}}}";
Теперь вы можете сделать следующее, чтобы разорвать escape-последовательность:
var str = $"{{{number:F2} }}"; // This will be "{123.45 }"
Обратите внимание насимвол пробела этот подход добавляет к выводу.(Не идеально)
Мой вопрос:
Допустим, я хочу использовать единственную интерполированную строку , чтобы получить именно вывод "{123.45}"
Возможно ли это вообще без хакерских действий, подобных приведенным ниже?
var s = $"{{{number:F2}{'}'}";