Tarkastele ratkaisua merkkijonomatriisiarvojen yhdistämiseen merkkijonoina ja kokonaislukujen haasteena
Seuraava koodi on yksi mahdollinen ratkaisu edellisen osion haasteeseen.
Muistiinpano
Tämän harjoituksen koodinäytteet on suunniteltu en-US maa-asetusten perusteella ja käyttävät desimaalierottimena pistettä (.). Koodin luominen ja suorittaminen maa-asetus, joka käyttää erilaisia desimaalierottimia (kuten pilkku ,), voi tuottaa odottamattomia tuloksia tai virheitä. Voit korjata ongelman korvaamalla koodinäytteiden pistedesimaalierottimet paikallisella desimaalierottimella (kuten ,).
Vaihtoehtoisesti voit suorittaa ohjelman käyttämällä en-US maa-asetusta lisäämällä seuraavan koodin ohjelmasi yläosaan: using System.Globalization; ja muiden using lausekkeiden jälkeen lisää 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}");
Tämä koodi on vain "yhden mahdollisen ratkaisun", koska on todennäköisesti useita tapoja ratkaista tämä haaste. Ehdotettu ratkaisu perustuu TryParse(), mutta on mahdollista, että sinulla on toinen lähestymistapa, joka toimii yhtä hyvin. Varmista vain, että tulos vastaa seuraavia tuloksia:
Message: ABCDEF
Total: 68.3
Jos onnistuit, onnittelut!
Tärkeä
Jos sinulla oli ongelmia tämän haasteen suorittamisessa, tarkista edelliset yksiköt ennen jatkamista.