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 textuales tienen como prefijo el símbolo @ y nos permiten incluir saltos de línea, caracteres especiales e incluso espacios en blanco sin utilizar 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#.";
$vbLabelText   $csharpLabel

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

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#.";
$vbLabelText   $csharpLabel

En este ejemplo, la cadena str contiene la palabra "multiline" entre comillas dobles, lo que se logra utilizando comillas dobles dentro de la cadena textual.

Concatenar cadenas multilínea

A menudo, puede que necesites combinar cadenas multilínea con otras cadenas o valores. Para concatenar una cadena de varias líneas con otros valores de cadena, puede utilizar el operador +, tal como lo haría 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!";
$vbLabelText   $csharpLabel

Aquí, hemos concatenado la cadena de varias líneas 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 de varias líneas, puede utilizar 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!";
$vbLabelText   $csharpLabel

Utilizamos la interpolación de cadenas para incluir el valor de la variable age dentro de la cadena de varias líneas.

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, puede utilizar 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, " ");
$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 que el código sea más legible, puede dividir cadenas largas en varias líneas utilizando 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.";
$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 de varias líneas sin utilizar el símbolo @. Para crear un literal de cadena sin formato, 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.""";
$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.""";
$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 utilizando 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.""";
$vbLabelText   $csharpLabel

En este ejemplo, creamos una cadena multilínea usando ambos literales de cadena verbatim y crudos. Observe 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");
$vbLabelText   $csharpLabel

En este ejemplo, utilizamos la interpolación de cadenas para incluir las variables name y age dentro de nuestra cadena de varias líneas, lo que hace 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 de varias líneas 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 desde tan solo $799 para una licencia 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 de Iron Software y un ingeniero visionario pionero en la tecnología C# PDF. Como desarrollador original de la base de código principal de Iron Software, ha dado forma a la arquitectura de productos de la empresa desde su creación, ...

Leer más

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me