Відповіді:
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для скидання значень у рядки:
private static readonly string formatString = "This is {0}overflow";
...
var strVar = "stack";
var myStr = string.Format(formatString, "stack");
Альтернативою є використання оператора конкатенації C #:
var strVar = "stack";
var myStr = "This is " + strVar + "overflow";
Якщо ви робите багато спільних змагань, використовуйте StringBuilderклас, який є більш ефективним:
var strVar = "stack";
var stringBuilder = new StringBuilder("This is ");
for (;;)
{
stringBuilder.Append(strVar); // spot the deliberate mistake ;-)
}
stringBuilder.Append("overflow");
var myStr = stringBuilder.ToString();
C # 6.0
string mystr = $"This is {strVar}overflow";
Для цього немає оператора. Вам потрібно користуватися string.Format.
string strVar = "stack";
string mystr = string.Format("This is {0}soverflow", strVar);
На жаль string.Format, це статичний метод, тому ви не можете просто написати "This is {0}soverflow".Format(strVar). Деякі люди визначили метод розширення, що дозволяє цей синтаксис.
Використання string.Format:
string mystr = string.Format("This is {0}overflow", "stack");
Ви повинні використовувати String.Format(). Синтаксис дещо інший, замість цього використовуються числові заповнювачі.
Приклад:
String.Format("item {0}, item {1}", "one", "two")
Перегляньте http://msdn.microsoft.com/en-us/library/system.string.format.aspx для отримання більш детальної інформації.
У вас є 2 варіанти. Ви можете використовувати String.Format або скористатися оператором конкатенації.
String newString = String.Format("I inserted this string {0} into this one", oldstring);
АБО
String newString = "I inserted this string " + oldstring + " into this one";
String.Format()використовується StringBuilder. StringBuilder, як правило, більш ефективний при об'єднанні безлічі рядків, але оператор конкатенації ідеально підходить для вимкнення. String.Format()є корисним, коли форматування потрібно застосувати до виводу, наприклад, для додавання прокладки або ведучих нулів до числових значень. Тож використання String.Format()в циклі потенційно створить безліч StringBuilders. У цій ситуації краще використовувати один StringBuilder, оголошений поза циклом і AppendFormat()всередині циклу.
Є ще один спосіб реалізувати заповнювачі за допомогою рядка. Замініть, що це дивно допомагає в певних ситуаціях:
mystr = mystr.Replace("%soverflow", strVar);
Можна використовувати наступний спосіб
Строкова інтерполяція
Спеціальний символ $ ідентифікує літеральний рядок як інтерпольований рядок. напр
string name = "Mark";
string surname = "D'souza";
WriteLine($"Name :{name} Surname :{surname}" );//Name :Mark Surname :D'souza
Інтерпольована рядок - це літеральний рядок, який може містити інтерпольовані вирази. Коли інтерпольована рядок розв’язана на рядок результатів, елементи з інтерпольованими виразами замінюються на рядкові подання результатів вираження.
String.Format
Використовуйте String.Format, якщо вам потрібно вставити значення об'єкта, змінної чи виразу в інший рядок.Напр
WriteLine(String.Format("Name: {0}, Surname : {1}", name, surname));
Використання:
strVar = "stack"
mystr = String.Format("This is {0}", strVar);
Ви можете досягти цього за допомогою програми Expansive: https://github.com/anderly/Expansive