Я хочу сделать следующее на C # (исходя из фона Python):
strVar = "stack"
mystr = "This is %soverflow" % (strVar)
Как заменить токен внутри строки на значение вне ее?
Я хочу сделать следующее на C # (исходя из фона Python):
strVar = "stack"
mystr = "This is %soverflow" % (strVar)
Как заменить токен внутри строки на значение вне ее?
string mystr = string.Format("This is {0}overflow", strVar);
И вы также можете использовать именованные параметры вместо индексов.
Это было добавлено в C # 6.0 (Visual Studio 2015+).
Пример:
var planetName = "Bob";
var myName = "Ford";
var formattedStr = $"Hello planet {planetName}, my name is {myName}!";
// formattedStr should be "Hello planet Bob, my name is Ford!"
Это синтаксический сахар для:
var formattedStr = String.Format("Hello planet {0}, my name is {1}!", planetName, myName);
Дополнительные ресурсы:
$("This feature is {GetDescription(FEATURE_AMAZING))}");
Вы можете использовать
string.Format
для перетаскивания значений в строки:Альтернативой является использование оператора конкатенации C #:
Если вы выполняете много конкатенаций, используйте
StringBuilder
более эффективный класс:источник
C # 6.0
источник
Если в настоящее время вы используете Visual Studio 2015 с C # 6.0, попробуйте следующее:
эта функция называется строковой интерполяцией.
источник
Для этого нет оператора. Вам нужно использовать
string.Format
.К сожалению
string.Format
, это статический метод, поэтому вы не можете просто писать"This is {0}soverflow".Format(strVar)
. Некоторые люди определили метод расширения, который позволяет использовать этот синтаксис.источник
Использование
string.Format
:источник
Вы должны использовать
String.Format()
. Синтаксис немного другой, вместо него используются числовые заполнители.Пример:
См. Http://msdn.microsoft.com/en-us/library/system.string.format.aspx для получения дополнительных сведений.
источник
У вас есть 2 варианта. Вы можете использовать String.Format или оператор конкатенации.
ИЛИ
источник
String.Format()
использует StringBuilder. StringBuilder обычно более эффективен при конкатенации большого количества строк, но оператор конкатенации идеально подходит для одноразовых.String.Format()
полезен, когда необходимо применить форматирование к выходным данным, например, чтобы добавить заполнение или начальные нули к числовым значениям. Таким образом, использованиеString.Format()
в цикле потенциально может создать множество StringBuilders. В этой ситуации лучше использовать один StringBuilder, объявленный вне цикла иAppendFormat()
внутри цикла.Есть еще один способ реализовать заполнители с помощью string.Replace, как ни странно, помогает в определенных ситуациях:
источник
Вы можете использовать следующий способ
Специальный символ $ определяет строковый литерал как интерполированную строку. например
Интерполированная строка - это строковый литерал, который может содержать интерполированные выражения. Когда интерполированная строка преобразуется в строку результата, элементы с интерполированными выражениями заменяются строковыми представлениями результатов выражения.
Используйте String.Format, если вам нужно вставить значение объекта, переменной или выражения в другую строку.
источник
Использование:
источник
Вы можете сделать это с помощью Expansive: https://github.com/anderly/Expansive
источник