Je veux faire ce qui suit en C # (venant d'un arrière-plan Python):
strVar = "stack"
mystr = "This is %soverflow" % (strVar)
Comment remplacer le jeton à l'intérieur de la chaîne par la valeur à l'extérieur de celle-ci?
Je veux faire ce qui suit en C # (venant d'un arrière-plan Python):
strVar = "stack"
mystr = "This is %soverflow" % (strVar)
Comment remplacer le jeton à l'intérieur de la chaîne par la valeur à l'extérieur de celle-ci?
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:Une alternative consiste à utiliser l'opérateur de concaténation C #:
Si vous faites beaucoup de concaténations, utilisez la
StringBuilder
classe qui est la plus efficace:la source
C # 6.0
la source
Si vous utilisez actuellement Visual Studio 2015 avec C # 6.0, essayez ce qui suit:
cette fonctionnalité est appelée interpolation de chaîne.
la source
Il n'y a pas d'opérateur pour cela. Vous devez utiliser
string.Format
.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.la source
Utilisez
string.Format
:la source
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:
Jetez un œil à http://msdn.microsoft.com/en-us/library/system.string.format.aspx pour plus de détails.
la source
Vous avez 2 options. Vous pouvez soit utiliser String.Format, soit utiliser l'opérateur de concaténation.
OU
la source
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, utiliserString.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 etAppendFormat()
à 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:
la source
Vous pouvez utiliser la manière suivante
Le caractère spécial $ identifie un littéral de chaîne comme une chaîne interpolée. par exemple
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.
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.
la source
Utilisation:
la source
Vous pouvez accomplir cela avec Expansive: https://github.com/anderly/Expansive
la source