Se gjennom en løsning for å kombinere strengmatriseverdier som strenger og som heltallsutfordring

Fullført

Følgende kode er en mulig løsning på utfordringen fra den forrige enheten.

Notat

Kodeeksempler i denne øvelsen er utformet basert på en-US kulturinnstillinger, og bruker et punktum (.) som desimalskilletegn. Å bygge og kjøre koden med en kulturinnstilling som bruker forskjellige desimalskilletegn (for eksempel komma ,) kan gi uventede resultater eller feil. Hvis du vil løse dette problemet, erstatter du periodedesimalskilletegnene i kodeeksempler med det lokale desimalskilletegnet (for eksempel ,). Hvis du vil kjøre et program ved hjelp av en-US kulturinnstillingen, kan du legge til følgende kode øverst i programmet: using System.Globalization; og etter at andre using setninger legger til 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}");

Denne koden er bare «én mulig løsning» fordi det sannsynligvis finnes flere måter å løse denne utfordringen på. Den foreslåtte løsningen er avhengig av TryParse(), men det er mulig at du har en annen tilnærming som fungerer like bra. Bare sørg for at resultatet samsvarer med følgende utdata:

Message: ABCDEF
Total: 68.3

Hvis du var vellykket, gratulerer!

Viktig

Hvis du hadde problemer med å fullføre denne utfordringen, bør du kanskje se gjennom de forrige enhetene før du fortsetter.