En este post de programación en C# te mostraré cómo separar una cadena según un carácter o delimitador, y convertirla a arreglo.
Te voy a enseñar cómo separar una cadena por espacios y por comas, para que puedas aplicar todo esto a tus necesidades con cualquier otro carácter.
Esto nos servirá para separar una cadena por cualquier carácter en c#, y de paso convertir una string a array en C sharp.
Separando cadenas
A esta operación se le llama Split, y básicamente convierte una cadena a arreglo usando un conjunto de caracteres como separadores. Yo solo te enseñaré a usar un separador a la vez. La sintaxis es:
arreglo_de_cadenas = cadena.Split(separador)
Te mostraré ejemplos a continuación.
Separar usando espacio
Supongamos que queremos extraer todas las palabras de una cadena usando C#. De manera simple podemos usar el espacio como separador de las mismas. El siguiente código hace ese trabajo:
string cadena = "Programando en C# desde Parzibyte.me";
string[] separado = cadena.Split(new char[] { ' ' });
foreach (string palabra in separado)
{
Console.WriteLine(palabra);
}
En la línea 1 defino la cadena, después la separo invocando a Split
en la línea 2. Fíjate que debemos enviar un arreglo de caracteres o de cadenas (en este caso le envío uno de caracteres) con todos lo caracteres que queremos usar como delimitadores.
Como en este caso solo quiero separar usando el espacio, el arreglo solo tiene una entrada que es ' '
.
Finalmente estoy imprimiendo todas las palabras en la línea 5.
C# – Separar cadena por comas
Veamos el último ejemplo: cómo convertir una cadena a arreglo separándola por comas. En este caso vamos a suponer que tenemos una columna de un archivo CSV que tiene el nombre, precio y existencia de un producto en la misma línea separada por comas.
Para acceder a los datos podemos separarla usando ,
como el delimitador, invocar a Split
, después acceder al arreglo y convertir los datos. El código completo queda así:
string cadena = "Galletas,100,5";
string[] separado = cadena.Split(new char[] { ',' });
string nombre = separado[0];
double precio = Convert.ToDouble(separado[1]);
int existencia = Convert.ToInt32(separado[2]);
Console.WriteLine("El nombre es {0}, el precio es {1} y la existencia es {2}", nombre, precio, existencia);
Obviamente este no es un ejemplo para parsear un CSV, solo te estoy dando un ejemplo sencillo de código C# para separar una cadena según un delimitador.
Por aquí puedes aprender más de C#.