Dado que las otras respuestas aquí, aunque correcta, no abordan explícitamente sus dudas iniciales, Lo haré.
Si llama al string.Replace(char oldChar, char newChar)
, reemplazará las apariciones de un carácter con otro carácter. Es un reemplazo uno a uno. Debido a esto, la longitud de la cadena resultante será la misma.
Lo que quiere es eliminar los guiones, que, obviamente, no es lo mismo que reemplazarlos por otro carácter. No puede reemplazarlo por "sin carácter" porque 1 carácter es siempre 1 carácter. Es por eso que necesita usar la sobrecarga que toma cadenas: las cadenas pueden tener diferentes longitudes. Si reemplaza una cadena de longitud 1, con una cadena de longitud 0, el efecto es que los guiones desaparecen, reemplazados por "nada".
string val = "123-12-1234" .Replace ("-", String.Empty); // Nota: al menos intente resolver un problema antes de publicar dichas preguntas. –
¿Por qué el voto a favor? Puede ser una pregunta simple de responder, pero eso no lo hace mal seguramente? Los nuevos usuarios pueden desanimarse rápidamente ... –
Estoy de acuerdo con Peter Kelly: votando – Nick