Bekijk een oplossing voor het combineren van tekenreeksmatrixwaarden als tekenreeksen en als uitdaging voor gehele getallen
De volgende code is één mogelijke oplossing voor de uitdaging uit de vorige les.
Notitie
De codevoorbeelden in deze oefening zijn ontworpen op basis van en-US cultuurinstellingen en gebruiken een punt (.) als decimaalteken. Het bouwen en uitvoeren van de code met een cultuurinstelling die gebruikmaakt van een ander decimaalteken (zoals een komma ,) kan onverwachte resultaten of fouten opleveren. U kunt dit probleem oplossen door de puntdecimaaltekens in de codevoorbeelden te vervangen door het lokale decimaalteken (zoals ,).
Als u een programma wilt uitvoeren met behulp van de en-US cultuurinstelling, voegt u de volgende code toe aan het begin van uw programma: using System.Globalization; en voeg na andere using instructies CultureInfo.CurrentCulture = new CultureInfo("en-US");toe.
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}");
Deze code is slechts één mogelijke oplossing, omdat er waarschijnlijk verschillende manieren zijn om deze uitdaging op te lossen. De voorgestelde oplossing is afhankelijk van TryParse(), maar het is mogelijk dat u een andere benadering hebt die even goed werkt. Zorg ervoor dat uw resultaat overeenkomt met de volgende uitvoer:
Message: ABCDEF
Total: 68.3
Als je succesvol was, gefeliciteerd!
Belangrijk
Als u problemen ondervindt bij het voltooien van deze uitdaging, moet u misschien de vorige lessen bekijken voordat u doorgaat.