Réponses:
string mystr = string.Format("This is {0}overflow", strVar);
Et vous pouvez également utiliser des paramètres nommés au lieu d'index.
Cela a été ajouté à partir de C # 6.0 (Visual Studio 2015+).
Exemple:
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!"
C'est du sucre syntaxique pour:
var formattedStr = String.Format("Hello planet {0}, my name is {1}!", planetName, myName);
Ressources supplémentaires:
$("This feature is {GetDescription(FEATURE_AMAZING))}");
Vous pouvez utiliser string.Format
pour déposer des valeurs dans des chaînes:
private static readonly string formatString = "This is {0}overflow";
...
var strVar = "stack";
var myStr = string.Format(formatString, "stack");
Une alternative consiste à utiliser l'opérateur de concaténation C #:
var strVar = "stack";
var myStr = "This is " + strVar + "overflow";
Si vous faites beaucoup de concaténations, utilisez la StringBuilder
classe qui est la plus efficace:
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";
Il n'y a pas d'opérateur pour cela. Vous devez utiliser string.Format
.
string strVar = "stack";
string mystr = string.Format("This is {0}soverflow", strVar);
Malheureusement, string.Format
c'est une méthode statique, vous ne pouvez donc pas simplement écrire "This is {0}soverflow".Format(strVar)
. Certaines personnes ont défini une méthode d'extension, qui permet cette syntaxe.
Utilisez string.Format
:
string mystr = string.Format("This is {0}overflow", "stack");
Vous devriez utiliser String.Format()
. La syntaxe est un peu différente, des espaces réservés numériques sont utilisés à la place.
Exemple:
String.Format("item {0}, item {1}", "one", "two")
Jetez un œil à http://msdn.microsoft.com/en-us/library/system.string.format.aspx pour plus de détails.
Vous avez 2 options. Vous pouvez soit utiliser String.Format, soit utiliser l'opérateur de concaténation.
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()
utilise StringBuilder. StringBuilder est généralement plus efficace lors de la concaténation de nombreuses chaînes, mais l'opérateur de concaténation est parfait pour les opérations ponctuelles. String.Format()
est utile lorsque le formatage doit être appliqué à la sortie, par exemple pour ajouter un remplissage ou des zéros non significatifs aux valeurs numériques. Donc, utiliser String.Format()
dans une boucle va potentiellement instancier un grand nombre de StringBuilders. Dans cette situation, il est préférable d'utiliser un seul StringBuilder déclaré en dehors de la boucle et AppendFormat()
à l'intérieur de la boucle.
Il existe un autre moyen d'implémenter des espaces réservés avec une chaîne: Remplacer, cela aide étrangement dans certaines situations:
mystr = mystr.Replace("%soverflow", strVar);
Vous pouvez utiliser la manière suivante
Interpolation de chaîne
Le caractère spécial $ identifie un littéral de chaîne comme une chaîne interpolée. par exemple
string name = "Mark";
string surname = "D'souza";
WriteLine($"Name :{name} Surname :{surname}" );//Name :Mark Surname :D'souza
Une chaîne interpolée est un littéral de chaîne qui peut contenir des expressions interpolées. Lorsqu'une chaîne interpolée est résolue en chaîne de résultat, les éléments avec des expressions interpolées sont remplacés par les représentations sous forme de chaîne des résultats de l'expression.
String.Format
Utilisez String.Format si vous devez insérer la valeur d'un objet, d'une variable ou d'une expression dans une autre chaîne.
WriteLine(String.Format("Name: {0}, Surname : {1}", name, surname));
Utilisation:
strVar = "stack"
mystr = String.Format("This is {0}", strVar);
Vous pouvez accomplir cela avec Expansive: https://github.com/anderly/Expansive