Замена текста внутри строки

#c# #string-interpolation

#c# #строка-интерполяция

Вопрос:

У меня есть строка со следующим текстом, и мне нужно заменить несколько символов:

 zpl = "Test text {A1} - test text {A2} - test text {A3}";
 

Я хочу заменить {A?} значением из таблицы данных. Это отлично работает для меня с Visual Studio 2017, но 2012, с которым я должен скомпилировать, сообщает мне неожиданный символ $:

 for (int i = 1; i <= 3; i  )
{
    zpl = zpl.Replace($"{{A{i}}}", row[0][i].ToString());
}
 

Я не знаю, как заставить его работать со Studio 2012.

Комментарии:

1. Вы должны вернуться к использованию string.Format или просто конкатенации строк. string.Format("{{A{0}}}", i) или "{A" i "}"

Ответ №1:

 $"{{A{i}}}"
 

(который является новым в C # 6) такой же, как

 string.Format("{{A{0}}}", i)
 

Таким образом, ваш код становится

 for (int i = 1; i <= 3; i  )
{
    zpl = zpl.Replace(string.Format("{{A{0}}}", i), row[0][i].ToString());
}