ここではTryParseメソッドを使って、文字列が数値に変換できるかチェックする方法を紹介します。

int.TryParseメソッド

int.TryParseメソッドは、数値の文字列がint型に変換できるかチェックしてから変換します。
第1引数にはチェック対象のstring型の文字列、第2引数には変換された値を格納するint型の変数を定義します。また、変換が成功した場合はtrue、変換が失敗した場合はfalseを返します。もし変換に失敗した場合は第2引数に0が格納されます。
Parseメソッドで数値に変換して例外が発生するか調べる方法もありますが、TryParseメソッドは例外を発生しないで、判定結果と変換した値を取得できます。

構文

Boolean型変数 = int.TryParse({チェック対象の文字列}, out {変換された値});

以下は int.TryParseメソッドで変換の判定結果を出力する例です。

string num = "00123";
int intValue;
Boolean ret;

ret = int.TryParse(num, out intValue);
Console.WriteLine(ret);
// 実行結果:True


以下は if~else文を組み合わせた例です。変換できた場合は変換した数値を出力します。

string num = "00123";
int outValue;

if (int.TryParse(num, out outValue) == true)
{
    Console.WriteLine($"{num}は{outValue}に変換しました");
}
else
{
    Console.WriteLine($"{num}は数値に変換できませんでした");
}
//実行結果:00123は123に変換しました


decimal.TryParseメソッド

小数点以下の数値を扱う場合は、decimal.TryParseメソッを使用します。

以下は if~else文を組み合わせた例です。変換できた場合は変換した数値を出力します。

string num = "00123.56";
decimal outValue;

if (decimal.TryParse(num, out outValue) == true)
{
    Console.WriteLine($"{num}は{outValue}に変換しました");
}
else
{
    Console.WriteLine($"{num}は数値に変換できませんでした");
}
//実行結果:00123.56は123.56に変換しました


以上、C#のTryParseメソッドを使って、文字列が数値に変換できるかチェックする方法について解説しました。