Revizuiți o soluție pentru combinarea valorilor matrice de șiruri ca șiruri și ca provocare de numere întregi
Următorul cod este o soluție posibilă pentru provocarea de la unitatea anterioară.
Notă
Eșantioanele de cod din acest exercițiu sunt proiectate pe baza setărilor de cultură en-US și utilizează un punct (.) ca separator zecimal. Construirea și rularea codului cu o setare de cultură care utilizează un separator zecimal diferit (cum ar fi o virgulă ,) poate oferi rezultate sau erori neașteptate. Pentru a remedia această problemă, înlocuiți separatorii de perioadă zecimală din eșantioanele de cod cu separatorul zecimal local (cum ar fi ,).
Ca alternativă, pentru a rula un program utilizând setarea de cultură en-US, adăugați următorul cod în partea de sus a programului: using System.Globalization; și, după orice alte instrucțiuni de using, adăugați 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}");
Acest cod este doar "o soluție posibilă", deoarece există mai multe modalități de a rezolva această provocare. Soluția propusă se bazează pe TryParse(), însă este posibil să aveți o altă abordare care funcționează la fel de bine. Asigurați-vă că rezultatul se potrivește cu următorul rezultat:
Message: ABCDEF
Total: 68.3
Dacă ați reușit, felicitări!
Important
Dacă ați avut probleme la finalizarea acestei provocări, poate ar trebui să revizuiți unitățile anterioare înainte de a continua.