por Cesar Cassiano Schimanco

Usar vários separadores de uma só vez para criar um array de string com Split e StringSplitOptions.RemoveEmptyEntries para remover valores vazios

A forma mais comum de criar um array e desta forma:

string _valores = "email1@cbsa.com.br;email2@cbsa.com.br";
string[] array = _valores.Split(','); //onde ',' sera o separador

No exemplo acima, usei emails e "," como separador. Essa seria basicamente a extrutura de um arquivo CSV.
Agora imagine que você precisa importar uma lista de emails que venham no formato CSV. Se você não souber a origem do arquivo, ou seja, exportado por diversas ferramentas, você pode se deparar com alguns problemas, como por exemplo os separadores.
O CSV deveria ser separado por vírgula como seu próprio nome diz, valores separados por vírgulas (Comma Separated Values).
Mas na prática isso não funciona assim, pois também temos os arquivos separados por ";", mais detalhes neste link: http://en.wikipedia.org/wiki/Comma-separated_values
Então para fazer a separação tanto de vírgula como de ponto e vírgula e ainda eliminar os valores em branco, podemos fazer assim:

//neste exemplo temos uma string com valores separados por vírgula e ponto e vírgula. 
//inclusive um valor em branco que fica entre o email3 e o email5. 
string _valores = "email1@cbsa.com.br,email2@cbsa.com.b;email3@cbsa.com.br,,email5@cbsa.com.br"; 
char[] separadores = new char[] { ';', ',' }; 
//usando 2 tipos de separadores. 
string[] arr = _valores.Split(separadores, StringSplitOptions.RemoveEmptyEntries); 
foreach (var item in arr) { 
    Response.Write(item + "<br />"); 
}

Resultado:
email1@cbsa.com.br
email2@cbsa.com.br
email3@cbsa.com.br
email5@cbsa.com.br

Podemos observar que no resultado abaixo que os emails foram separados tanto por "," como por ";" e com o uso do StringSplitOptions.RemoveEmptyEntries, não ficou uma lacuna entre o email 3 e o 5.

Comentários

Carregando comentários

Postar um novo comentário



Processando...