Esaminare una soluzione per la sfida sul combinare valori di matrice stringa come stringhe e interi
Il codice seguente è una possibile soluzione per la sfida dell'unità precedente.
Nota
Gli esempi di codice di questo esercizio sono progettati in base all'impostazione culturale "en-US", ovvero inglese statunitense, in cui viene usato il punto (.) come separatore decimale. La compilazione e l'esecuzione del codice con un'impostazione cultura che utilizza un separatore decimale diverso (ad esempio una virgola ,) può causare risultati o errori imprevisti. Per risolvere questo problema, sostituire, negli esempi di codice, i separatori decimali sotto forma di punto, con il separatore decimale locale, ad esempio ,.
In alternativa, per eseguire un programma usando l'impostazione cultura en-US, aggiungi il seguente codice all'inizio del programma: using System.Globalization; e dopo qualsiasi altra istruzione using aggiungi 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}");
Questo codice è semplicemente "una possibile soluzione" perché è probabile che ci siano diversi modi per risolvere questa sfida. La soluzione proposta si basa su TryParse(), ma è possibile avere un altro approccio che funzioni ugualmente bene. Assicurarsi che il risultato corrisponda all'output seguente:
Message: ABCDEF
Total: 68.3
Se hai avuto successo, congratulazioni!
Importante
Se si verificano problemi durante il completamento di questa sfida, è consigliabile esaminare le unità precedenti prima di continuare.