小编典典

如何将字符串解析为可为null的int

c#

我想在C#中将字符串解析为可为null的int。即。我想找回字符串的int值,如果无法解析,则返回null。

我有点希望这能起作用

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;
        }
    }
}

有更好的方法吗?

编辑: 感谢TryParse的建议,我的确知道这一点,但效果差不多。我更想知道是否有内置的框架方法可以直接解析为可为null的int?


阅读 270

收藏
2020-05-19

共1个答案

小编典典

int.TryParse 可能有点容易:

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

编辑 @Glenn int.TryParse已“内置到框架中”。它int.Parse 字符串解析为int的方法。

2020-05-19