Cómo trabajar con cadenas de texto en C#
Cómo unir palabras y las diferentes técnicas que existen en C#. Pequeños grandes detalles 😉

Aunque parezca básico este tema es muy importante tenerlo claro, es de esas cosas que las aprender en unos minutos pero te sirven para siempre. Si ya sabías este tema, pues bien al menos te refrescará la memoria, pero si no lo sabías aquí aprenderás algo nuevo y provechoso.

En una ocasión recuerdo que me preguntaron por este tema y me dijeron: ¿Cómo manejas las cadenas en C#?

Nunca me había planteado esa pregunta y lo que respondí fue, bueno para unir dos textos los concateno no? con el símbolito + 🤣, fue entonces que recordé que hay una forma más "profesional" de hacerlo y les dije uso la biblioteca String, particularmente el método String.Format.

Ok me dijeron sabes de alguna otra forma? Pues no les dije, no sabía otro modo, seguramente el haber respondido la tercera forma me hubiese ganado más puntos, pero ahora que ya lo sé y lo uso a diario, se los comparto:

Las tres formas hasta donde sé, son las siguientes:

Concatenación

Esta es la más básica y es con lo que todos empezamos y aprendemos, la sintaxis es similar a esta:

        public string Concatenacion(string[] palabras)
        {
            var palabra1 = palabras[0];
            var palabra2 = palabras[1];

            return "Usando concatenación: " + palabra1 + " " + palabra2;
        }

Como sabemos, unimos dos strings con el símbolo de suma y listo.

String.Format

Esta es un poco más avanzada y permite entre otras cosas, unir cadenas y algo más, pero ahora nos concentraremos en unir cadenas, es más manejable y tiene una apariencia similar a esta:

        public string Formateo(string[] palabras)
        {
            var palabra1 = palabras[0];
            var palabra2 = palabras[1];

            return string.Format("{0}: {1} {2}","Usando formateo", palabra1, palabra2);
        }

Interpolación

Esta es la más reciente, y está disponible desde la versión 6 de C# y es más natural a mi parecer, hace uso de el símbolo $ similar al estilo PHP.

        public string Interpolacion(string[] palabras)
        {
            var palabra1 = palabras[0];
            var palabra2 = palabras[1];

            return $"Usando interpolación: {palabra1} {palabra2}";
        }

Hora de testear

Photo by Max Chen on Unsplash

Pues bien para probar los métodos, hice una sencillísima aplicación de consola y en un único archivo codifiqué los tres métodos y el main de la aplicación de consola:

using System;

namespace StringHandling
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Cómo lidiar con textos en C#");
            Console.WriteLine("============================");
            var listaPalabras = new string[] { "Hola", "mundo" };

            StringHandling stringHandling = new StringHandling();

            Console.WriteLine(stringHandling.Concatenacion(listaPalabras));
            Console.WriteLine(stringHandling.Formateo(listaPalabras));
            Console.WriteLine(stringHandling.Interpolacion(listaPalabras));
            Console.ReadLine();
        }        
    }

    public class StringHandling
    {
        public string Concatenacion(string[] palabras)
        {
            var palabra1 = palabras[0];
            var palabra2 = palabras[1];

            return "Usando concatenación: " + palabra1 + " " + palabra2;
        }

        public string Formateo(string[] palabras)
        {
            var palabra1 = palabras[0];
            var palabra2 = palabras[1];

            return string.Format("{0}: {1} {2}","Usando formateo", palabra1, palabra2);
        }

        public string Interpolacion(string[] palabras)
        {
            var palabra1 = palabras[0];
            var palabra2 = palabras[1];

            return $"Usando interpolación: {palabra1} {palabra2}";
        }
    }
}

Y como no podría ser de otra forma, el resultado en pantalla es:

El proyecto lo puedes descargar desde mi Github disponible aquí.

Crack, si esta entrega te ha fascinado considera compartirla eh 😄 😉

Deja una respuesta

Tu dirección de correo electrónico no será publicada.