1. ホーム
  2. c#

[解決済み】文字列をパースしてNULL可能なint型にする方法

2022-03-26 05:53:59

質問

C#で文字列をパースしてNULL可能なint型にしたいのです。

これがうまくいくことをちょっと期待してたんだけど

int? val = stringVal as int?;

しかし、それではうまくいかないので、今やっている方法は、この拡張メソッドを書くことです。

public static int? ParseNullableInt(this string value)
{
    if (value == null || value.Trim() == string.Empty)
    {
        return null;
    }
    else
    {
        try
        {
            return int.Parse(value);
        }
        catch
        {
            return null;
        }
    }
}   

もっと良い方法はないのでしょうか?

EDITです。 TryParseの提案ありがとうございます!それについては知っていましたが、ほぼ同じように動作しました。 私は、nullable intに直接パースする組み込みのフレームワークメソッドがあるかどうかにもっと興味があります。

解決方法は?

int.TryParse の方が少し簡単かもしれません。

public static int? ToNullableInt(this string s)
{
    int i;
    if (int.TryParse(s, out i)) return i;
    return null;
}

編集 グレン int.TryParse は、フレームワークに組み込まれています。これと int.Parse その 文字列をint型にパースする方法です。