檢閱將字串陣列值合併為字串和整數挑戰的解決方案
下列程式碼是先前單元中挑戰的其中一個可能解決方案。
注意
本練習中的程式碼範例是根據 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
如果成功,恭喜您!
重要
如果您無法順利完成此挑戰,您應該在繼續之前先複習上一個單元中的內容。