string.Replace (u otra modificación de cadena) no funciona
Para el siguiente código, no puedo hacer que string.Replace
funcione:
someTestString.Replace(someID.ToString(), sessionID);
cuando depuro y verifico los parámetros, tienen los valores que espero, es decir, someID.ToString()
obtuvieron "1087163075", sessionID
tienen "108716308" y someTestString
contienen "1087163075".
No tengo idea de por qué esto no funcionaría.someTestString
Muestra completa:
string someTestString =
"<a href='myfoldert/108716305-1.jpg' target='_blank'>108716305-1.jpg</a>"
someTestString.Replace("108716305", "NewId42");
el resultado (en someTestString
) debería ser este:
"<a href='myfoldert/NewId42-1.jpg' target='_blank'>NewId42-1.jpg</a>"
pero no cambia. La cadena for someTestString
permanece sin cambios después de ingresar a mi código.
Las cadenas son inmutables. El resultado string.Replace
es una nueva cadena con el valor reemplazado.
Puede almacenar el resultado en una nueva variable:
var newString = someTestString.Replace(someID.ToString(), sessionID);
o simplemente reasigne a la variable original si solo desea observar el comportamiento de "cadena actualizada":
someTestString = someTestString.Replace(someID.ToString(), sessionID);
Tenga en cuenta que esto se aplica a todas las demás string
funciones como Remove
,, Insert
recortar y variantes de subcadena; todas devuelven una nueva cadena ya que la cadena original no se puede modificar.
someTestString = someTestString.Replace(someID.ToString(), sessionID);
eso debería funcionar para ti
las cadenas son inmutables, el reemplazo devolverá una nueva cadena, por lo que necesita algo como
string newstring = someTestString.Replace(someID.ToString(), sessionID);