文字列配列の値を文字列として、および整数として組み合わせる課題の解決策を確認する
次のコードは、前のユニットの課題に対して考えられる解答の 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
正しくできたなら、おめでとうございます。
重要
この課題を完了できなかった場合は、先に進む前に、これまでのユニットを確認した方がよいと思われます。