Respostas:
string mystr = string.Format("This is {0}overflow", strVar);
E você também pode usar parâmetros nomeados em vez de índices.
Isso foi adicionado a partir do C # 6.0 (Visual Studio 2015+).
Exemplo:
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!"
Este é o açúcar sintático para:
var formattedStr = String.Format("Hello planet {0}, my name is {1}!", planetName, myName);
Recursos adicionais:
$("This feature is {GetDescription(FEATURE_AMAZING))}");
Você pode usar string.Format
para soltar valores em strings:
private static readonly string formatString = "This is {0}overflow";
...
var strVar = "stack";
var myStr = string.Format(formatString, "stack");
Uma alternativa é usar o operador de concatenação C #:
var strVar = "stack";
var myStr = "This is " + strVar + "overflow";
Se você estiver fazendo muitas concatenações, use a StringBuilder
classe que é mais eficiente:
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";
Não há operadora para isso. Você precisa usar string.Format
.
string strVar = "stack";
string mystr = string.Format("This is {0}soverflow", strVar);
Infelizmente, string.Format
é um método estático, então você não pode simplesmente escrever "This is {0}soverflow".Format(strVar)
. Algumas pessoas definiram um método de extensão, que permite essa sintaxe.
Use string.Format
:
string mystr = string.Format("This is {0}overflow", "stack");
Você deveria estar usando String.Format()
. A sintaxe é um pouco diferente; em vez disso, são usados marcadores numéricos.
Exemplo:
String.Format("item {0}, item {1}", "one", "two")
Dê uma olhada em http://msdn.microsoft.com/en-us/library/system.string.format.aspx para mais detalhes.
Você tem 2 opções. Você pode usar String.Format ou pode usar o operador de concatenação.
String newString = String.Format("I inserted this string {0} into this one", oldstring);
OU
String newString = "I inserted this string " + oldstring + " into this one";
String.Format()
bastidores usa StringBuilder. StringBuilder é normalmente mais eficiente ao concatenar muitas strings, mas o operador de concatenação é perfeito para uma única vez. String.Format()
é útil quando a formatação precisa ser aplicada à saída, por exemplo, para adicionar preenchimento ou zeros à esquerda a valores numéricos. Portanto, o uso String.Format()
em um loop irá potencialmente instanciar muitos StringBuilders. Nessa situação, é melhor usar um único StringBuilder declarado fora do loop e AppendFormat()
dentro do loop.
Há mais uma maneira de implementar marcadores de posição com string. Substitua, estranhamente ajuda em certas situações:
mystr = mystr.Replace("%soverflow", strVar);
Você pode usar a seguinte maneira
Interpolação de string
O caractere especial $ identifica uma string literal como uma string interpolada. por exemplo
string name = "Mark";
string surname = "D'souza";
WriteLine($"Name :{name} Surname :{surname}" );//Name :Mark Surname :D'souza
Uma string interpolada é uma string literal que pode conter expressões interpoladas. Quando uma string interpolada é resolvida em uma string de resultado, os itens com expressões interpoladas são substituídos pelas representações de string dos resultados da expressão.
String.Format
Use String.Format se precisar inserir o valor de um objeto, variável ou expressão em outra string.Eg
WriteLine(String.Format("Name: {0}, Surname : {1}", name, surname));
Usar:
strVar = "stack"
mystr = String.Format("This is {0}", strVar);
Você pode fazer isso com o Expansive: https://github.com/anderly/Expansive