Olá… de volta a ativa um um artigo que se não é novidade, vai ajudar aqueles programadores que estão brigando com o método String.Format ou com formatações dentro do método “ToString()”.
Você deve ter percebido que Console.WriteLine na verdade é um método “parente” do String.Format pois permite que façamos formatações como neste último.
Existem alguns truques dentro destes que não são muito usados ou tão comuns. Observe o código a seguir:
9 void Main()
10 {
11 List<meusDados> dados = new List<meusDados>();
12 dados.Add(new meusDados
13 {
14 ID = 1,
15 Nome = "José",
16 Cargo = "Gerente",
17 Admissao = new DateTime(1990, 1, 2),
18 Salario = 3000M
19 });
20 dados.Add(new meusDados
21 {
22 ID = 10,
23 Nome = "Ana",
24 Cargo = "Programadora",
25 Admissao = new DateTime(2000, 10, 12),
26 Salario = 2773.35M
27 });
28 dados.Add(new meusDados
29 {
30 ID = 12,
31 Nome = "Beatriz",
32 Cargo = "Suporte",
33 Admissao = new DateTime(2005, 11, 2),
34 Salario = 1500
35 });
36
37 string formatacao = "{0, 5} {1, -15} {2, -15} {3, -10} {4, 15}";
38 Console.WriteLine(formatacao, "Id", "Nome", "Cargo", "Admissão", "Salário");
39 foreach (meusDados item in dados)
40 {
41 Console.WriteLine(formatacao, item.ID, item.Nome, item.Cargo, item.Admissao, item.Salario);
42 }
43 }
44
45 // Define other methods and classes here
46 public class meusDados
47 {
48 public int ID;
49 public string Nome;
50 public string Cargo;
51 public DateTime Admissao;
52 public decimal Salario;
53 }
Este código produz a seguinte saída na tela:
1 José Gerente 02/01/1990 00:00:00 3000
10 Ana Programadora 12/10/2000 00:00:00 2773,35
12 Beatriz Suporte 02/11/2005 00:00:00 1500
O ponto importante aqui está na linha 37 que define a formatação a ser usada:
37 string formatacao = "{0, 5} {1, -15} {2, -15} {3, -10} {4, 15}";
Ao separar o número do parâmetro esperado pelo método com uma vírgula o seu conteúdo é alinhado com espaços correspondente ao número que está após a vírgula.
Números positivos alinham o conteúdo a direita, numeros negativos à esquerda.
Mas, é possível definir mais opções de formatos, altere a linha para o conteúdo a seguir:
37 string formatacao = "{0, 5} {1, -15} {2, -15} {3, -10:dd/MM/yyyy} {4, 15:C}";
Note que agora, além do tamanho do alinhamento é passado também uma opção a mais de formatação. Este código resulta na seguinte listagem:
1 José Gerente 02/01/1990 R$ 3.000,00
10 Ana Programadora 12/10/2000 R$ 2.773,35
12 Beatriz Suporte 02/11/2005 R$ 1.500,00
Com isso, saídas de texto em arquivos ou mesmo na tela tem mais opções de formatação. Por enquanto é só. Explore mais sobre formatação de strings na documentação do framework.