Risposte:
string mystr = string.Format("This is {0}overflow", strVar);
E potresti anche usare parametri con nome invece di indici.
Questo è stato aggiunto a partire da C # 6.0 (Visual Studio 2015+).
Esempio:
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!"
Questo è zucchero sintattico per:
var formattedStr = String.Format("Hello planet {0}, my name is {1}!", planetName, myName);
Risorse addizionali:
$("This feature is {GetDescription(FEATURE_AMAZING))}");
È possibile utilizzare string.Format
per trascinare i valori nelle stringhe:
private static readonly string formatString = "This is {0}overflow";
...
var strVar = "stack";
var myStr = string.Format(formatString, "stack");
Un'alternativa consiste nell'usare l'operatore di concatenazione C #:
var strVar = "stack";
var myStr = "This is " + strVar + "overflow";
Se stai facendo molte concatenazioni usa la StringBuilder
classe che è più efficiente:
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";
Non esiste un operatore per questo. Devi usare string.Format
.
string strVar = "stack";
string mystr = string.Format("This is {0}soverflow", strVar);
Sfortunatamente string.Format
è un metodo statico, quindi non puoi semplicemente scrivere "This is {0}soverflow".Format(strVar)
. Alcune persone hanno definito un metodo di estensione, che consente questa sintassi.
Usa string.Format
:
string mystr = string.Format("This is {0}overflow", "stack");
Dovresti usare String.Format()
. La sintassi è leggermente diversa, vengono invece utilizzati segnaposto numerici.
Esempio:
String.Format("item {0}, item {1}", "one", "two")
Dai un'occhiata a http://msdn.microsoft.com/en-us/library/system.string.format.aspx per maggiori dettagli.
Hai 2 opzioni. È possibile utilizzare String.Format oppure è possibile utilizzare l'operatore di concatenazione.
String newString = String.Format("I inserted this string {0} into this one", oldstring);
O
String newString = "I inserted this string " + oldstring + " into this one";
String.Format()
utilizza StringBuilder. StringBuilder è in genere più efficiente quando concatenano molte stringhe, ma l'operatore di concatenazione è perfetto per una tantum. String.Format()
è utile quando la formattazione deve essere applicata all'output, ad esempio per aggiungere riempimento o zeri iniziali ai valori numerici. Quindi l'utilizzo String.Format()
in un ciclo creerà potenzialmente un'istanza di molti StringBuilders. In quella situazione è meglio usare un singolo StringBuilder dichiarato fuori dal ciclo e AppendFormat()
dentro il ciclo.
C'è un altro modo per implementare segnaposto con string.Replace, stranamente aiuta in determinate situazioni:
mystr = mystr.Replace("%soverflow", strVar);
Puoi usare il modo seguente
Interpolazione di stringhe
Il carattere speciale $ identifica una stringa letterale come una stringa interpolata. per esempio
string name = "Mark";
string surname = "D'souza";
WriteLine($"Name :{name} Surname :{surname}" );//Name :Mark Surname :D'souza
Una stringa interpolata è un valore letterale stringa che potrebbe contenere espressioni interpolate. Quando una stringa interpolata viene risolta in una stringa di risultato, gli elementi con espressioni interpolate vengono sostituiti dalle rappresentazioni di stringa dei risultati dell'espressione.
String.Format
Utilizzare String.Format se è necessario inserire il valore di un oggetto, una variabile o un'espressione in un'altra stringa
WriteLine(String.Format("Name: {0}, Surname : {1}", name, surname));
Uso:
strVar = "stack"
mystr = String.Format("This is {0}", strVar);
Puoi farlo con Expansive: https://github.com/anderly/Expansive