文字列配列の値を文字列として、および整数として組み合わせる課題の解決策を確認する

完了

次のコードは、前のユニットの課題に対して考えられる解答の 1 つです。

Note

この演習のコード サンプルは、米国 (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}");

この課題には複数の回答が考えられるため、このコードは "考えられる解決策の 1 つ" にすぎません。 提案された解決策は TryParse() に依存していますが、同じように機能する他の手法を使用することもできます。 結果が次の出力と同じになることを確認してください。

Message: ABCDEF
Total: 68.3

正しくできたなら、おめでとうございます。

重要

この課題を完了できなかった場合は、先に進む前に、これまでのユニットを確認した方がよいと思われます。