Cómo hacer un salto de línea en C#
Compara \n, \r\n y Environment.NewLine para insertar saltos de línea en cadenas de C#.
Actualizado el
Para hacer un salto de línea en una cadena de C# puedes usar \n, \r\n o Environment.NewLine. La elección depende del destino del texto:
\ninserta un salto LF explícito y es habitual en cadenas y protocolos que lo requieren.\r\ninserta la secuencia CRLF explícita, común en Windows o en formatos que la exigen.Environment.NewLineusa el separador nativo del sistema operativo donde se ejecuta la aplicación.
Usar \n
string mensaje = "Primera línea\nSegunda línea";
Console.WriteLine(mensaje);Salida:
Primera línea
Segunda línea\n representa un único carácter LF. Úsalo cuando el destino espere ese separador, por ejemplo en cadenas que se envían a una API o en formatos que lo exigen; no des por hecho que sirve para cualquier salida de consola o archivo.
Usar \r\n
En Windows el salto de línea tradicional es \r\n:
string mensaje = "Primera línea\r\nSegunda línea";
Console.WriteLine(mensaje);Funciona igual visualmente, pero usa la combinación de retorno de carro y nueva línea. Es la opción adecuada cuando necesitas CRLF explícito, por ejemplo en formatos que lo exigen.
Usar Environment.NewLine
Environment.NewLine es la opción más portable cuando el texto debe adaptarse al sistema operativo donde se ejecuta la aplicación:
string mensaje = "Primera línea" + Environment.NewLine + "Segunda línea";
Console.WriteLine(mensaje);Eso no la convierte en la opción correcta para protocolos o formatos que exigen un separador concreto: en esos casos usa el que corresponda.
También puedes usarlo en strings interpolados:
string nombre = "Ana";
string mensaje = $"Hola {nombre}{Environment.NewLine}Bienvenida";
Console.WriteLine(mensaje);Usar strings verbatim
Con un string verbatim (@) puedes escribir el salto de línea directamente en el código:
string texto = @"Primera línea
Segunda línea";
Console.WriteLine(texto);En este caso el salto está escrito físicamente dentro del literal, por lo que no cambia según la plataforma. No es un sustituto universal de Environment.NewLine: úsalo cuando quieras mantener el texto tal cual está en el código.
Qué opción usar
| Opción | Qué inserta | Cuándo usarla |
|---|---|---|
\n | LF | Cuando el destino espera LF, como muchas APIs y formatos de texto. |
\r\n | CR + LF | Cuando necesitas CRLF explícito, habitual en Windows o en formatos que lo exigen. |
Environment.NewLine | Separador nativo de la plataforma | Cuando el texto debe adaptarse al sistema operativo donde se ejecuta. |
String verbatim (@) | Salto físico dentro del literal | Cuando el texto ya tiene varias líneas en el código y quieres mantenerlas legibles. |