Examinar uma solução para combinar valores de matriz de cadeia de caracteres como cadeias de caracteres e como desafio de inteiros
O código a seguir é uma solução possível para o desafio da unidade anterior.
Nota
Os exemplos de código neste exercício são projetados com base nas configurações de cultura en-US e usam um período (.) como separador decimal. Criar e executar o código com uma configuração de cultura que usa separadores decimais diferentes (como uma vírgula ,) pode fornecer resultados ou erros inesperados. Para corrigir esse problema, substitua os separadores decimais de período nos exemplos de código pelo separador decimal local (como ,).
Como alternativa, para executar um programa usando a configuração de cultura de en-US, adicione o seguinte código à parte superior do programa: using System.Globalization; e depois que qualquer outra instrução using adicionar CultureInfo.CurrentCulture = new CultureInfo("en-US");.
string[] values = { "12.3", "45", "ABC", "11", "DEF" };
decimal total = 0m;
string message = "";
foreach (var value in values)
{
decimal number; // stores the TryParse "out" value
if (decimal.TryParse(value, out number))
{
total += number;
} else
{
message += value;
}
}
Console.WriteLine($"Message: {message}");
Console.WriteLine($"Total: {total}");
Esse código é apenas "uma solução possível" porque provavelmente há várias maneiras de resolver esse desafio. A solução proposta depende de TryParse(), no entanto, é possível que você tenha outra abordagem que funcione igualmente bem. Apenas verifique se o resultado corresponde à seguinte saída:
Message: ABCDEF
Total: 68.3
Se você foi bem-sucedido, parabéns!
Importante
Se você tiver problemas para concluir esse desafio, talvez deva examinar as unidades anteriores antes de continuar.