3 formas de Concatenar String con C#
Tags: csharp, concatenacion, string, cadena
Published: 2021-02-03 14:57:51

Para iniciar vamos a definir que es concatenar y como la usamos en la programación.

**Concatenación** es la acción de encadenar conceptos para crear una secuencia, en programación es **unir o anexar cadenas**, una después de otra.

Al programar en varias ocasiones vamos a necesitar unir cadenas, strings, o diferente tipos de variables, strings con numeros, fechas, etc.

En C Sharp (C#) tenemos varias opciones para realizar concatenaciones.
- String.Format
- String.Concat
- String.Join o 
- StringBuilder.Append
- El operador "+"
- Interpolación

En este post vamos a tratar los 3 principales.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/5ih3cd2sk7dv8f0ddrat.png)

**1. Operador "+"**
Este es sin duda el más popular, el que nos enseñaron por primera vez cuando aprendimos a programar, y lo hemos usado muchas veces. 
Es fácil de usar y genera código entendible.
Este operador lo podemos combinar con texto plano, strings, y otros tipos de variables convirtiéndolo en string. 
La sintaxis es sencilla y podemos añadir el texto o variables que necesitemos. 

Console.WriteLine("Texto" **+** variable);
Console.WriteLine("Texto" **+** "Texto");
Ejemplo:

```csharp
class Program
    {
        static void Main(string[] args)
        {
            string variable = "Hola Mundo";
            Console.WriteLine(" Mi primer " + variable);
        }
    }
```
El resultado es el siguiente:
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/g3b7q249k0yz9njxxkln.PNG)

**2. String.Format**
Utilizamos esta opción cuando necesitamos insertar el contenido de una variable u objeto en una cadena, no es recomendable usarlo si tenemos muchas variables a concatenar, ya que podríamos perder el sentido del orden de las variables creando confusión con el numero y orden.
En el siguiente ejemplo observamos una variación, transformamos el string en int ya que **.Length** cuenta el numero de palabras que tiene esta cadena, por lo tanto cambia el formato, pero esta opción es idónea para estos casos.
La sintaxis es sencilla, 
Console.WriteLine(**string.Format**("aquí va el texto {numero de orden}", variable));

dentro de las comillas va el texto plano, dentro de las llaves va el número de la posición de la variable, iniciando desde la posición **0**, fuera de ellas seguido de una coma se colocan las variables.
Ejemplo:
```csharp
class Program
    {
        static void Main(string[] args)
        {
            string variable = "Hola Mundo";
            Console.WriteLine(string.Format("La frase {0} tiene {1} letras",
                              variable, variable.Length));
        }
    }
```
El resultado es el siguiente:
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/8pb4rgjjif99am7euu7z.PNG)

**3. Interpolación**
Esto es un poco más complicado de entender, esto significa que vamos a tener cadenas o expresiones que incluyan interpolación. 
Se basa en la característica de formato compuesto.
La [interpolación](https://docs.microsoft.com/es-es/dotnet/csharp/tutorials/string-interpolation) fue añadida en la versión C# 6, es relativamente nueva pero la opción más recomendada para concatenar cadenas ya que insertamos la variable en el lugar que va a ser visualizada, evitando la confusión que se crea con la opción anterior y produce el mismo resultado. 
La sintaxis es más legible y fácil de crear, inicia con un signo de **$** seguido de comillas, dentro de las comillas va el contenido incluyendo las {} dentro de las llaves va la variable. 

Console.WriteLine(**$**"aqui va el texto {variable}");
como observamos a continuación.
Ejemplo
```csharp
class Program
    {
        static void Main(string[] args)
        {
            string variable = "Hola Mundo";
            Console.WriteLine($"La frase {variable} tiene {variable.Length} letras");
        }
    }
```
El resultado es el siguiente:
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/8pb4rgjjif99am7euu7z.PNG)

##Conclusión

Puedes usar la opción que gustes, todas cumplen el mismo objetivo, depende el uso que vas a darle, de todas formas aquí te he creado una infografía con el resumen de este post.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/x68foiv7bifqaucviudk.png)

Nos vemos en [Twitter](https://twitter.com/veronicaguamann) e [Instagram](https://www.instagram.com/veronicaguamann/) ;)