Saltar al pie de página
.NET AYUDA

Cadena multilineal en C# (Cómo funciona para desarrolladores)

Cuando comienzas con C#, las cadenas son uno de los primeros conceptos que aprendes. Si alguna vez has creado un programa Hello, World!, entonces ya has trabajado con cadenas.

A medida que te familiarices más con C#, tus programas se volverán más complejos. En poco tiempo, comenzarás a trabajar con cadenas que abarcan múltiples líneas. Si estás en esa etapa ahora, tienes suerte, porque en esta guía, explicaremos qué son las cadenas multilínea y cómo usarlas. Vamos a sumergirnos.

¿Qué es una cadena multilínea?

Las cadenas multilínea son exactamente lo que parecen: una cadena que abarca múltiples líneas, en contraste con la cadena de una sola línea habitual. Una cadena multilínea en C# se crea utilizando literales de cadena, que son una serie de caracteres encerrados entre comillas dobles. Para formar cadenas multilínea, necesitamos usar un tipo especial de literales de cadena llamados literales de cadena verbatim.

La magia de las cadenas Verbatim

Para crear un literal de cadena multilínea en C#, usamos cadenas verbatim. Las cadenas verbatim se prefijan con el símbolo @ y nos permiten incluir saltos de línea, caracteres especiales e incluso espacios en blanco sin usar secuencias de escape.

Aquí tienes un ejemplo de una cadena multilínea usando una cadena verbatim:

string str = @"This is a
multiline string
in C#.";
string str = @"This is a
multiline string
in C#.";
Dim str As String = "This is a
multiline string
in C#."
$vbLabelText   $csharpLabel

La cadena str contiene tres líneas, y cada línea está separada por un salto de línea. Observa el uso del símbolo @ para crear la cadena verbatim.

Escapar caracteres en cadenas literales

Puede haber casos en los que necesites incluir comillas dobles dentro de una cadena verbatim. Para hacer esto, debes usar comillas dobles-dobles. Por ejemplo:

string str = @"This is a
""multiline""
string in C#.";
string str = @"This is a
""multiline""
string in C#.";
Dim str As String = "This is a
""multiline""
string in C#."
$vbLabelText   $csharpLabel

En este ejemplo, la cadena str contiene la palabra "multilínea" entre comillas dobles, lo cual se logra usando comillas dobles-dobles dentro de la cadena verbatim.

Concatenar cadenas multilínea

A menudo, puede que necesites combinar cadenas multilínea con otras cadenas o valores. Para concatenar una cadena multilínea con otros valores de cadena, puedes usar el operador +, al igual que harías con cadenas de una sola línea.

string name = "John";
string str = @"Hello, " + name + @",
Welcome to the
world of C# multiline strings!";
string name = "John";
string str = @"Hello, " + name + @",
Welcome to the
world of C# multiline strings!";
Dim name As String = "John"
Dim str As String = "Hello, " & name & ",
Welcome to the
world of C# multiline strings!"
$vbLabelText   $csharpLabel

Aquí, hemos concatenado la cadena multilínea con una cadena de una sola línea name.

Formateo de cadenas multilínea

Al trabajar con cadenas multilínea, puedes formatearlas con variables o expresiones. Para formatear una cadena multilínea, puedes usar el símbolo $ para la interpolación de cadenas.

int age = 25;
string str = $@"Hello, I am {age} years old,
and I am learning
C# multiline strings!";
int age = 25;
string str = $@"Hello, I am {age} years old,
and I am learning
C# multiline strings!";
Dim age As Integer = 25
Dim str As String = $"Hello, I am {age} years old,
and I am learning
C# multiline strings!"
$vbLabelText   $csharpLabel

Usamos la interpolación de cadenas para incluir el valor de la variable age dentro de la cadena multilínea.

Conversión de cadenas multilínea a cadenas de una sola línea

A veces, puede que necesites convertir cadenas multilínea en cadenas de una sola línea. Para lograr esto, puedes usar el método Replace para reemplazar los saltos de línea con un espacio o cualquier otro carácter deseado.

string multilineString = @"This is a
multiline string
in C#.";

string singleLineString = multilineString.Replace(Environment.NewLine, " ");
string multilineString = @"This is a
multiline string
in C#.";

string singleLineString = multilineString.Replace(Environment.NewLine, " ");
Dim multilineString As String = "This is a
multiline string
in C#."

Dim singleLineString As String = multilineString.Replace(Environment.NewLine, " ")
$vbLabelText   $csharpLabel

Reemplazamos los saltos de línea en la cadena multilínea con un espacio, resultando en una cadena de una sola línea.

Manejo de cadenas largas

A veces, las cadenas muy largas pueden ser difíciles de leer en tu código. Para hacer el código más legible, puedes dividir las cadenas largas en múltiples líneas usando el operador +.

string longString = "This is a very long string that " +
                    "needs to be split across " +
                    "multiple lines for better readability.";
string longString = "This is a very long string that " +
                    "needs to be split across " +
                    "multiple lines for better readability.";
Dim longString As String = "This is a very long string that " & "needs to be split across " & "multiple lines for better readability."
$vbLabelText   $csharpLabel

Dividimos la cadena larga de una sola línea en tres partes y las concatenamos usando el operador +, haciendo que el código sea más legible.

Creación de literales de cadena multilínea con literales de cadena sin procesar

En C# 10, se introdujo una nueva característica llamada literales de cadena crudos. Estos nos permiten crear literales de cadena multilínea sin usar el símbolo @. Para crear un literal de cadena crudo, encerramos la cadena entre comillas triples ("""). Los literales de cadena crudos preservan todos los caracteres, incluidos los saltos de línea, dentro de las comillas triples. Por ejemplo:

string str = """This is a
multiline string
using raw string literals in C# 10.""";
string str = """This is a
multiline string
using raw string literals in C# 10.""";
Dim str As String = """This is a multiline string using raw string literals in C# 10."""
$vbLabelText   $csharpLabel

Creamos una cadena multilínea usando literales de cadena crudos. Observa el uso de comillas triples para encerrar la cadena.

Escapar caracteres en literales de cadena sin procesar

Al igual que con las cadenas verbatim, puede que necesitemos incluir comillas dobles dentro de nuestros literales de cadena crudos. Para hacer esto, podemos usar comillas dobles-dobles. Por ejemplo:

string str = """This is a
""multiline""
string using raw string literals in C# 10.""";
string str = """This is a
""multiline""
string using raw string literals in C# 10.""";
Dim str As String = """This is a ""multiline"" string using raw string literals in C# 10."""
$vbLabelText   $csharpLabel

Incluimos comillas dobles dentro del literal de cadena crudo usando comillas dobles-dobles.

Combinación de literales literales y literales en bruto

En algunos casos, puede que queramos combinar las características de ambos literales de cadena verbatim y crudos. Esto se puede hacer usando el símbolo @ seguido de comillas triples.

string str = @"""This is a
multiline string
using both verbatim and raw string literals in C# 10.""";
string str = @"""This is a
multiline string
using both verbatim and raw string literals in C# 10.""";
Dim str As String = """This is a
multiline string
using both verbatim and raw string literals in C# 10."""
$vbLabelText   $csharpLabel

En este ejemplo, creamos una cadena multilínea usando ambos literales de cadena verbatim y crudos. Observa el uso del símbolo @ seguido de comillas triples.

Uso de cadenas multilínea para generar PDF en IronPDF

IronPDF es una biblioteca PDF .NET ligera diseñada específicamente pensando en los desarrolladores web. Hace que leer, escribir y manipular archivos PDF sea muy sencillo, capaz de convertir todo tipo de tipos de archivo en contenido PDF, y puedes usarlo en tus proyectos .NET tanto para escritorio como para la web. Lo mejor de todo - es gratis para probar en un entorno de desarrollo.

Aquí te mostramos cómo utilizar una cadena multilínea HTML para crear un archivo PDF en IronPDF:

string name = "John";
string age = "25";
string content = $@"<!DOCTYPE html>
<html>
<body>
<h1>Hello, {name}!</h1>
<p>You are {age} years old.</p>
<p>This is a
multiline string
used to generate a PDF
with IronPDF and dynamic content.</p>
</body>
</html>";

// Create a new PDF document using IronPDF
var pdfDocument = new IronPdf.ChromePdfRenderer();
pdfDocument.RenderHtmlAsPdf(content).SaveAs("c://BioData.pdf");
string name = "John";
string age = "25";
string content = $@"<!DOCTYPE html>
<html>
<body>
<h1>Hello, {name}!</h1>
<p>You are {age} years old.</p>
<p>This is a
multiline string
used to generate a PDF
with IronPDF and dynamic content.</p>
</body>
</html>";

// Create a new PDF document using IronPDF
var pdfDocument = new IronPdf.ChromePdfRenderer();
pdfDocument.RenderHtmlAsPdf(content).SaveAs("c://BioData.pdf");
Dim name As String = "John"
Dim age As String = "25"
Dim content As String = $"<!DOCTYPE html>
<html>
<body>
<h1>Hello, {name}!</h1>
<p>You are {age} years old.</p>
<p>This is a
multiline string
used to generate a PDF
with IronPDF and dynamic content.</p>
</body>
</html>"

' Create a new PDF document using IronPDF
Dim pdfDocument = New IronPdf.ChromePdfRenderer()
pdfDocument.RenderHtmlAsPdf(content).SaveAs("c://BioData.pdf")
$vbLabelText   $csharpLabel

En este ejemplo, usamos la interpolación de cadenas para incluir las variables name y age dentro de nuestra cadena multilínea, haciendo que nuestro contenido PDF sea dinámico y personalizable. Creamos una cadena multilínea con el contenido que deseábamos en el PDF. Luego, instanciamos la clase ChromePdfRenderer del espacio de nombres IronPDF y usamos el método RenderHtmlAsPdf para convertir el contenido de la cadena multilínea en un documento PDF. Finalmente, guardamos el documento PDF en un archivo llamado "BioData.pdf".

Conclusión

Y eso es un rápido recorrido por el mundo versátil de las cadenas multilínea. Ahora que eres un experto en cadenas multilínea en C#, puedes comenzar a implementarlas en tus proyectos, como el ejemplo con IronPDF anterior.

¿Buscando poner tus manos en IronPDF? Puedes empezar con nuestra prueba gratuita de 30 días de IronPDF. También es completamente gratis para usar con fines de desarrollo, para que realmente puedas ver de qué está hecho. Y si te gusta lo que ves, IronPDF comienza tan bajo como $799 para una licencia de IronPDF. Para ahorros aún mayores, echa un vistazo al paquete Iron Suite donde puedes obtener las nueve herramientas de Iron Software por el precio de dos. ¡Feliz programación!

Csharp Multiline String 2 related to Conclusión

Preguntas Frecuentes

¿Cómo puedes crear una cadena multilínea en C#?

En C#, puedes crear una cadena multilínea utilizando literales de cadena verbatim al anteponer la cadena con el símbolo '@'. Esto te permite incluir saltos de línea y caracteres especiales directamente dentro de la cadena.

¿Cuál es el propósito de usar literales de cadena verbatim en C#?

Los literales de cadena verbatim en C# se utilizan para crear cadenas que preservan los saltos de línea y los caracteres especiales sin requerir secuencias de escape. Se indican con el símbolo '@', lo que los hace ideales para escribir cadenas multilínea.

¿Cómo manejas caracteres especiales como comillas dobles en cadenas verbatim?

En cadenas verbatim, puedes incluir comillas dobles usando comillas dobles dobles. Por ejemplo, '@"This is a ""multiline"" string."' te permite incluir comillas dobles dentro de la cadena.

¿Qué son los literales de cadena crudos en C# 10 y cómo funcionan?

Los literales de cadena crudos introducidos en C# 10 permiten la creación de cadenas multilínea sin utilizar el símbolo '@'. Se encierran en triples comillas y retienen todos los caracteres, incluidos los saltos de línea, tal como aparecen.

¿Cómo se pueden usar las cadenas multilínea en la generación de PDF?

Las cadenas multilínea se pueden usar para crear contenido dinámico en formato HTML, que luego puede convertirse en documentos PDF utilizando bibliotecas como IronPDF que soportan la conversión de HTML a PDF.

¿Qué es la interpolación de cadenas y cómo se aplica a las cadenas multilínea?

La interpolación de cadenas en C# permite incrustar variables o expresiones dentro de las cadenas usando el símbolo '$'. Se puede usar con cadenas multilínea para incluir contenido dinámico sin problemas.

¿Cómo conviertes una cadena multilínea en una cadena de una sola línea en C#?

Para convertir una cadena multilínea en una cadena de una sola línea, puedes usar el método Replace para reemplazar los saltos de línea con espacios u otro carácter. Por ejemplo: multilineString.Replace(Environment.NewLine, " ").

¿Por qué deberían los desarrolladores utilizar bibliotecas para la generación de PDF en aplicaciones .NET?

Las bibliotecas diseñadas para la generación de PDF en .NET, como IronPDF, simplifican el proceso de lectura, escritura y manipulación de PDFs. Soportan la conversión de varios tipos de archivos en PDFs, proporcionando un potente conjunto de herramientas para aplicaciones tanto de escritorio como web.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología en Iron Software y un ingeniero visionario que lidera la tecnología PDF en C#. Como el desarrollador original detrás de la base de código central de Iron Software, ha moldeado la arquitectura de productos de la compañía desde ...

Leer más