A sztringtömbértékek sztringként és egész számként való kombinálására szolgáló megoldás áttekintése
Az alábbi kód az előző leckéből származó kihívás egyik lehetséges megoldása.
Jegyzet
A gyakorlatban szereplő kódminták en-US kulturális beállítások alapján lettek kialakítva, és egy pont (.) használatával tizedesjelet használnak. A kód létrehozása és futtatása más tizedesjeleket használó kulturális beállítással (például vesszővel ,) váratlan eredményeket vagy hibákat okozhat. A probléma megoldásához cserélje le a kódmintákban szereplő pont decimális elválasztójeleket a helyi tizedeselválasztóra (például ,).
Másik lehetőségként, ha a en-US kulturális beállítással szeretne programot futtatni, adja hozzá a következő kódot a program elejéhez: using System.Globalization; és bármely más using utasítás után adja hozzá 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}");
Ez a kód csupán "egy lehetséges megoldás,", mert valószínűleg több módszer is van a feladat megoldására. A javasolt megoldás TryParse()támaszkodik, de lehetséges, hogy van egy másik megközelítés is, amely egyformán jól működik. Csak győződjön meg arról, hogy az eredmény megegyezik a következő kimenettel:
Message: ABCDEF
Total: 68.3
Ha sikeres volt, gratulálunk!
Fontos
Ha nem sikerült elvégeznie ezt a feladatot, érdemes lehet áttekinteni az előző egységeket, mielőtt továbblép.