Ich möchte in C # (aus einem Python-Hintergrund) Folgendes tun:
strVar = "stack"
mystr = "This is %soverflow" % (strVar)
Wie ersetze ich das Token innerhalb der Zeichenfolge durch den Wert außerhalb der Zeichenfolge?
Ich möchte in C # (aus einem Python-Hintergrund) Folgendes tun:
strVar = "stack"
mystr = "This is %soverflow" % (strVar)
Wie ersetze ich das Token innerhalb der Zeichenfolge durch den Wert außerhalb der Zeichenfolge?
string mystr = string.Format("This is {0}overflow", strVar);
Sie können auch benannte Parameter anstelle von Indizes verwenden.
Dies wurde ab C # 6.0 (Visual Studio 2015+) hinzugefügt.
Beispiel:
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!"
Dies ist syntaktischer Zucker für:
var formattedStr = String.Format("Hello planet {0}, my name is {1}!", planetName, myName);
Zusätzliche Ressourcen:
$("This feature is {GetDescription(FEATURE_AMAZING))}");
Sie können verwenden
string.Format
, um Werte in Zeichenfolgen abzulegen:Eine Alternative ist die Verwendung des C # -Verkettungsoperators:
Wenn Sie viele Verkettungen durchführen, verwenden Sie die
StringBuilder
Klasse, die effizienter ist:quelle
C # 6.0
quelle
Wenn Sie derzeit Visual Studio 2015 mit C # 6.0 verwenden, versuchen Sie Folgendes:
Diese Funktion wird als Zeichenfolgeninterpolation bezeichnet.
quelle
Dafür gibt es keinen Operator. Sie müssen verwenden
string.Format
.Leider
string.Format
ist eine statische Methode, so dass Sie nicht einfach schreiben können"This is {0}soverflow".Format(strVar)
. Einige Leute haben eine Erweiterungsmethode definiert, die diese Syntax erlaubt.quelle
Verwendung
string.Format
:quelle
Sie sollten verwenden
String.Format()
. Die Syntax ist etwas anders, stattdessen werden numerische Platzhalter verwendet.Beispiel:
Werfen Sie einen Blick auf http://msdn.microsoft.com/en-us/library/system.string.format.aspx für weitere Details.
quelle
Sie haben 2 Möglichkeiten. Sie können entweder String.Format oder den Verkettungsoperator verwenden.
ODER
quelle
String.Format()
verwendet StringBuilder. StringBuilder ist normalerweise effizienter, wenn viele Zeichenfolgen verkettet werden, aber der Verkettungsoperator eignet sich perfekt für einmalige Zeichenfolgen.String.Format()
ist nützlich, wenn die Ausgabe formatiert werden muss, z. B. um numerischen Werten Auffüllungen oder führende Nullen hinzuzufügen. Die VerwendungString.Format()
in einer Schleife instanziiert möglicherweise viele StringBuilder. In dieser Situation ist es besser, einen einzelnen StringBuilder zu verwenden, der außerhalb der Schleife undAppendFormat()
innerhalb der Schleife deklariert ist .Es gibt noch eine Möglichkeit, Platzhalter mit string zu implementieren. Ersetzen, hilft seltsamerweise in bestimmten Situationen:
quelle
Sie können den folgenden Weg verwenden
Das Sonderzeichen $ kennzeichnet ein Zeichenfolgenliteral als interpolierte Zeichenfolge. z.B
Eine interpolierte Zeichenfolge ist ein Zeichenfolgenliteral, das möglicherweise interpolierte Ausdrücke enthält. Wenn eine interpolierte Zeichenfolge in eine Ergebniszeichenfolge aufgelöst wird, werden Elemente mit interpolierten Ausdrücken durch die Zeichenfolgendarstellungen der Ausdrucksergebnisse ersetzt.
Verwenden Sie String.Format, wenn Sie den Wert eines Objekts, einer Variablen oder eines Ausdrucks in einen anderen string.Eg einfügen müssen
quelle
Verwenden:
quelle
Sie können dies mit Expansive erreichen: https://github.com/anderly/Expansive
quelle