Esaminare una soluzione per la sfida sul combinare valori di matrice stringa come stringhe e interi

Completato

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.