檢閱將字串陣列值合併為字串和整數挑戰的解決方案

已完成

下列程式碼是先前單元中挑戰的其中一個可能解決方案。

注意

本練習中的程式碼範例是根據 en-US 文化特性設定所設計,並使用句號 (.) 作為小數分隔符號。 使用採用不同小數分隔符號 (例如逗號 ,) 的文化特性設定來建置和執行程式碼,可能會產生非預期的結果或錯誤。 若要修正此問題,請將程式碼範例中的句點小數分隔符號取代為本機小數分隔符號 (例如 ,)。 另外,若要使用 en-US 文化特性設定來執行程式,請將下列程式碼新增至程式 using System.Globalization; 頂端,並在任何其他 using 陳述式之後新增 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}");

這段程式碼只是「一個可能的解決方案」,因為有好幾種方法可以解決這項挑戰。 提議的解決方案依賴 TryParse(),不過,您可能會有另一種同樣可行的方法。 只要確定您的結果符合下列輸出:

Message: ABCDEF
Total: 68.3

如果成功,恭喜您!

重要

如果您無法順利完成此挑戰,您應該在繼續之前先複習上一個單元中的內容。