por Cesar Cassiano Schimanco

Split de String para int[]

Imagine que precisamos transforar uma string "1,2,3" em um array de int. Normalmente utilizamos o Split e transformamos em um array de string, como no exemplo abaixo. Mas este exemplo retornaria um erro. Cannot implicitly convert type 'string' to 'int'.

string numeros = "1,2,3";
string[] arr = numeros.Split(',');
//Erro: Cannot implicitly convert type 'string' to 'int'
int primeiroNumero = arr[0];


Então vamos transformar nosso string[] em int[] utilizando o ConvertAll da classe System.Array. Veja o Exemplo.

string numeros = "1,2,3";
//Converter Split de String para int[]
int[] arr = Array.ConvertAll<string, int>(numeros.Split(','), int.Parse);
int primeiroNumero = arr[0];

 

 

Outra dica é utilizar o StringSplitOptions.RemoveEmptyEntries ao fazer o Split para remover entradas vazias.

string[] arr = "1,2,,3,".Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

Resultado:

 

String para int[] com StringSplitOptions.RemoveEmptyEntries

string numeros = "1,2,,3,";
int[] arr = Array.ConvertAll<string, int>(numeros.Split(new char[] {','}, StringSplitOptions.RemoveEmptyEntries), int.Parse);
int primeiroNumero = arr[0];

Resultado:

 

Caso não utilize o StringSplitOptions.RemoveEmptyEntries, pode gerar o seguinte erro:
An exception of type 'System.FormatException' occurred in mscorlib.dll but was not handled in user code
Input string was not in a correct format

Comentários

Carregando comentários

Postar um novo comentário



Processando...