将字符串转换为可为空的int

时间:2014-04-11 11:59:15

标签: c# int type-conversion nullable boxing

如果_model.SubBrand是一个字符串,是否有更优雅的方法将其转换为可以为空的int?我现在正在做的事情让人觉得笨重:

public int? SubBrandIndex
{
    get
    {
        return _model.SubBrand == null ?
            (int?)null : Convert.ToInt32(_model.SubBrand);
    }
}

2 个答案:

答案 0 :(得分:2)

为了避免异常,您还应该检查无效字符串

public int? SubBrandIndex
{
    get
    {
        int value;
        return int.TryParse(subBrand, out value) ? (int?)value : null;
    }
}

答案 1 :(得分:1)

为什么你想要单行,我认为这是非常清晰和可读的:

public int? SubBrandIndex
{
    get
    {
        int? subBrandIndex = null;
        if (_model.SubBrand != null)
            subBrandIndex = int.Parse(_model.SubBrand);
        return subBrandIndex;
    }
}