Respuestas:
string mystr = string.Format("This is {0}overflow", strVar);
Y también puede usar parámetros con nombre en lugar de índices.
Esto se ha agregado a partir de C # 6.0 (Visual Studio 2015+).
Ejemplo:
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 es azúcar sintáctico para:
var formattedStr = String.Format("Hello planet {0}, my name is {1}!", planetName, myName);
Recursos adicionales:
$("This feature is {GetDescription(FEATURE_AMAZING))}");
Puede usar string.Format
para colocar valores en cadenas:
private static readonly string formatString = "This is {0}overflow";
...
var strVar = "stack";
var myStr = string.Format(formatString, "stack");
Una alternativa es usar el operador de concatenación de C #:
var strVar = "stack";
var myStr = "This is " + strVar + "overflow";
Si está haciendo muchas concatenaciones, use la StringBuilder
clase que es más 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";
No hay operador para eso. Necesitas usar string.Format
.
string strVar = "stack";
string mystr = string.Format("This is {0}soverflow", strVar);
Desafortunadamente, string.Format
es un método estático, por lo que no puede simplemente escribir "This is {0}soverflow".Format(strVar)
. Algunas personas han definido un método de extensión que permite esta sintaxis.
Utilizar string.Format
:
string mystr = string.Format("This is {0}overflow", "stack");
Deberías estar usando String.Format()
. La sintaxis es un poco diferente, en su lugar se utilizan marcadores de posición numéricos.
Ejemplo:
String.Format("item {0}, item {1}", "one", "two")
Eche un vistazo a http://msdn.microsoft.com/en-us/library/system.string.format.aspx para obtener más detalles.
Tienes 2 opciones. Puede usar String.Format o puede usar el operador de concatenación.
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()
usa StringBuilder. StringBuilder suele ser más eficiente cuando se concatenan muchas cadenas, pero el operador de concatenación es perfecto para una sola. String.Format()
es útil cuando es necesario aplicar formato a la salida, por ejemplo, para agregar relleno o ceros iniciales a valores numéricos. Entonces, usarlo String.Format()
en un bucle potencialmente instanciará muchos StringBuilders. En esa situación, es mejor usar un solo StringBuilder declarado fuera del ciclo y AppendFormat()
dentro del ciclo.
Hay una forma más de implementar marcadores de posición con cadenas. Reemplazar, extrañamente ayuda en ciertas situaciones:
mystr = mystr.Replace("%soverflow", strVar);
Puedes usar la siguiente forma
Interpolación de cadenas
El carácter especial $ identifica una cadena literal como una cadena interpolada. p.ej
string name = "Mark";
string surname = "D'souza";
WriteLine($"Name :{name} Surname :{surname}" );//Name :Mark Surname :D'souza
Una cadena interpolada es un literal de cadena que puede contener expresiones interpoladas. Cuando una cadena interpolada se resuelve en una cadena de resultado, los elementos con expresiones interpoladas se reemplazan por las representaciones de cadena de los resultados de la expresión.
String.Format
Utilice String.Format si necesita insertar el valor de un objeto, variable o expresión en otra cadena.
WriteLine(String.Format("Name: {0}, Surname : {1}", name, surname));
Utilizar:
strVar = "stack"
mystr = String.Format("This is {0}", strVar);
Puede lograr esto con Expansive: https://github.com/anderly/Expansive